Spring Boot入门 (二) :无xml配置实现

无xml配置的实现

  • 自Spring3.X 以后 spring 提供了很多的注解来代替XML文件的配置,最核心的是下面两个注解。

    • ::@Configuration:: 标注该类是配置类,类似于我们定义的applicationContext.xml
    • ::@Bean:: 类似于我们在之前的spring配置文件中配置的
  • 有了上面两个注解我们可以用编码的方式来完成spring 的相关配置,接下来我们就来使用java编码的方式来实现spring配置

  • 1、新建一个工程,里面是使用原生Spring实现无配置文件。
    — 建立July-javaconfig 工程
    — 在pom.xml中加入一下内容:

    
        1.8
        5.0.8.RELEASE
    

    
        
            org.springframework
            spring-context
            ${spring.version}
        
        
            org.springframework
            spring-beans
            ${spring.version}
        
        
            org.springframework
            spring-context-support
            ${spring.version}
        

    

    
        
            
                org.apache.maven.plugins
                maven-compiler-plugin
                2.3.2
                
                    1.8
                    1.8
                
            
        
    

这里使用spring 5.0.8.RELEASE 版本。
— 在工程中新建包 cn.org.july.spring.service
— 在该包下新建Class HelloService.class,该service 实现一个方法sayHello(),代码如下:

package cn.org.july.spring.service;

/***
 * @author***wanghongjie*
 * 2018-10-26*
 **/
public class HelloService {

    public String sayHello(){
        return "Hello JavaConfig.....";
    }
}

— 在该目录下创建Class ApplicationConfiguration,该类相当于定义了一个applicationContext.xml。
在ApplicationConfiguration.class 中定义一个方法,该方法获取HelloService 。代码如下:

package cn.org.july.spring.service;

import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

 /***
  * 使用 ApplicationConfiguration 代替 配置文件*
  *  @author   wanghongjie
  */
@Configuration  //相当于定义了一个applicationContext.xml
public class ApplicationConfiguration {

    @Bean  // 相当于在applicationContext.xml中定义一个bean标签
    public HelloService helloService(){
        return new HelloService();
    }
}

— 创建测试类:Application.class,这里引入一个新的ClassAnnotationConfigApplicationContext对象。通过该类来加载Spring上下文信息。
存在applicationContext.xml

public static void main(String[] args) {
        //所有配置文件
        args = new String[] {
                "classpath:spring/spring-servlet.xml",
                "classpath:spring/ApplicationContext.xml",
                "classpath:spring/mybatis-config.xml",
        };
        ApplicationContext actx = new ClassPathXmlApplicationContext(args);
        //得到类的实例
        HelloService helloService = (HelloService) actx.getBean("helloService");
        //调用类的方法
        helloService.sayHello();
        
    }

— 不使用applicationContext.xml文件获取Spring上下文信息。

package cn.org.july.spring.service;

import org.springframework.context.annotation.AnnotationConfigApplicationContext;

public class Application {

    public static void main(String[] args) {
        // 获取spring 容器。
        AnnotationConfigApplicationContext configApplicationContext
                = new AnnotationConfigApplicationContext(ApplicationConfiguration.class);
        //从spring容器中获取bean
        HelloService helloService = configApplicationContext.getBean(HelloService.class);
        //方法调用
        String value = helloService.sayHello();
        System.*out*.printf(value);
    }
}

项目结构如下:


Spring Boot入门 (二) :无xml配置实现_第1张图片
项目结构

运行结果:


Spring Boot入门 (二) :无xml配置实现_第2张图片
运行结果

以上是两种启动方式对比。

你可能感兴趣的:(Spring Boot入门 (二) :无xml配置实现)