简体   繁体   中英

Create a Spring Framework starter project, not Spring Boot

I'm working on a project that uses Spring Framework 3.2.11.RELEASE version and we want to implement some new stuff in it, but before I want to make a small Rest API so I can do a proof of concept application. This small Rest API must use the same packages as the original one (no, updating the main project is not an option).

When using https://start.spring.io/ it gives me a good project but using Spring boot, which is not what I want. Using the project Initialzr gave me I changed the pom.xml to use the same spring packages of the original project:

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <groupId>com.example</groupId>
    <artifactId>demo</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <name>demo</name>
    <description>Demo project </description>
    <properties>
        <java.version>1.8</java.version>
    </properties>

    <dependencies>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-core</artifactId>
            <version>3.2.11.RELEASE</version>
        </dependency>

        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-beans</artifactId>
            <version>3.2.11.RELEASE</version>
        </dependency>

        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-aop</artifactId>
            <version>3.2.11.RELEASE</version>
        </dependency>

        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-context</artifactId>
            <version>3.2.11.RELEASE</version>
        </dependency>
    </dependencies>

</project>

Now I'm trying to modify the starter class to work with the dependencies in the pom.xml . This is where I'm lost, so far I couldn't find anything similar in the main project or the web. So, how could I change this main class so I can get it working?

package com.example.demo;

import org.springframework.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

@SpringBootApplication
public class DemoApplication {

    public static void main(String[] args) {
        SpringApplication.run(DemoApplication.class, args);
    }

}

If you haven't added any BusinessLogic to your current SpringBoot application, then you can create new Spring project using Eclipse or STS IDE. Your tester or main class will look something like this:

import org.springframework.beans.factory.BeanFactory;  
import org.springframework.beans.factory.xml.XmlBeanFactory;  
import org.springframework.core.io.ClassPathResource;  
import org.springframework.core.io.Resource;  
  
public class Test {  
public static void main(String[] args) {  
    Resource resource=new ClassPathResource("applicationContext.xml");  
    BeanFactory factory=new XmlBeanFactory(resource);  
      
    Student student=(Student)factory.getBean("studentbean");  
    student.displayInfo();  
}  
}  

(I have Student class created in my IDE that's why using an instance of that class just for DEMO) And your .xml file should look like this:

    <?xml version="1.0" encoding="UTF-8"?>  
    <beans  
        xmlns="http://www.springframework.org/schema/beans"  
        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"  
        xmlns:p="http://www.springframework.org/schema/p"  
        xsi:schemaLocation="http://www.springframework.org/schema/beans  
                   http://www.springframework.org/schema/beans/spring-beans-3.0.xsd">  
      
    <bean id="studentbean" class="com.app.Student">  
    <property name="name" value="Student1"></property>  
    </bean>  
      
    </beans> 

I hope this will somehow help you!

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM