使用Spring的JavaConfig

简介:

之前我们都是在xml文件中定义bean的,比如:

1
2
3
4
5
6
7
8
< beans  xmlns="http://www.springframework.org/schema/beans"
     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
     xsi:schemaLocation="http://www.springframework.org/schema/beans
     http://www.springframework.org/schema/beans/spring-beans-3.0.xsd">
  
     < bean  id="helloBean" class="com.mkyong.hello.impl.HelloWorldImpl">
  
</ beans >

其实我们可以使用注解来完成这些事情,例如下面的代码,完成的功能和上面的xml配置的功能是一样的:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
import  org.springframework.context.annotation.Bean;
import  org.springframework.context.annotation.Configuration;
import  com.mkyong.hello.HelloWorld;
import  com.mkyong.hello.impl.HelloWorldImpl;
  
@Configuration
public  class  AppConfig {
  
     @Bean (name= "helloBean" )
     public  HelloWorld helloWorld() {
         return  new  HelloWorldImpl();
     }
  
}

 想象一个场景,我们有一个很大的工程项目,如果将所有的bean都配置在一个xml文件中,那么这个文件就会非常的大。所以在很多的时候我们都会将一个大的xml配置文件分割为好几份。这样方便管理,最后在总的那个xml文件中导入就行了,比如:

1
2
3
4
5
6
7
8
9
< beans  xmlns="http://www.springframework.org/schema/beans"
     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
     xsi:schemaLocation="http://www.springframework.org/schema/beans
     http://www.springframework.org/schema/beans/spring-beans-2.5.xsd">
  
     < import  resource="config/customer.xml"/>
         < import  resource="config/scheduler.xml"/>
  
</ beans >

 但是现在我们也可以使用JavaConfig来完成同样的工作了:

1
2
3
4
5
6
7
8
import  org.springframework.context.annotation.Configuration;
import  org.springframework.context.annotation.Import;
  
@Configuration
@Import ({ CustomerConfig. class , SchedulerConfig. class  })
public  class  AppConfig {
  
}

  我们对这个例子来看一个demo:

CustomerBo.java

1
2
3
4
5
6
7
8
public  class  CustomerBo {
  
     public  void  printMsg(String msg) {
  
         System.out.println( "CustomerBo : "  + msg);
     }
  
}

 SchedulerBo.java

1
2
3
4
5
6
7
8
public  class  SchedulerBo {
  
     public  void  printMsg(String msg) {
  
         System.out.println( "SchedulerBo : "  + msg);
     }
  
}

  现在我们来使用注解:

1
2
3
4
5
6
7
8
9
10
@Configuration
public  class  CustomerConfig {
  
     @Bean (name= "customer" )
     public  CustomerBo customerBo(){
  
         return  new  CustomerBo();
  
     }
}

  

1
2
3
4
5
6
7
8
9
10
11
@Configuration
public  class  SchedulerConfig {
  
     @Bean (name= "scheduler" )
     public  SchedulerBo suchedulerBo(){
  
         return  new  SchedulerBo();
  
     }
  
}

  AppConfig.java

1
2
3
4
5
6
7
8
import  org.springframework.context.annotation.Configuration;
import  org.springframework.context.annotation.Import;
  
@Configuration
@Import ({ CustomerConfig. class , SchedulerConfig. class  })
public  class  AppConfig {
  
}

  然后运行:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
public  class  App {
     public  static  void  main(String[] args) {
  
         ApplicationContext context =  new  AnnotationConfigApplicationContext(
                 AppConfig. class );
  
         CustomerBo customer = (CustomerBo) context.getBean( "customer" );
         customer.printMsg( "Hello 1" );
  
         SchedulerBo scheduler = (SchedulerBo) context.getBean( "scheduler" );
         scheduler.printMsg( "Hello 2" );
  
     }
}

  

 

 


==============================================================================
本文转自被遗忘的博客园博客,原文链接:http://www.cnblogs.com/rollenholt/archive/2012/12/27/2835087.html,如需转载请自行联系原作者
相关文章
|
Java Spring
spring学习24-:在javaconfig中配置bean对象
spring学习24-:在javaconfig中配置bean对象
77 0
spring学习24-:在javaconfig中配置bean对象
|
XML Java Maven
面试官:说说 Springboot 中的 javaConfig(基于Spring5.2)
在Spring3.0之前,我们的bean一直通过XML文件来配置的,后来在Spring3.0之后为我们提供了java的config版本。而且在Spring4.0之后推荐我们使用,这篇文章基于Spring5.2来分析。希望在平时使用和面试的时候对你有一丝帮助。
246 0
|
XML Dubbo Java
Spring的Xml和JavaConfig 扩展你选哪一个?
Spring的Xml和JavaConfig 扩展你选哪一个?
88 0
|
XML Java 测试技术
动力节点王鹤|Spring Boot框架学习笔记(一)Xml 和 JavaConfig
Spring Boot框架 • 官方下载地址 动力节点spring资料 • 视频观看地址 https://www.bilibili.com/video/BV1XQ4y1m7ex 第一章 Xml 和 JavaConfig Spring 使用 Xml 作为容器配置文件, 在 3.0 以后加入了 JavaConfig. 使用 java 类做配 置文件使用。
163 0
动力节点王鹤|Spring Boot框架学习笔记(一)Xml 和 JavaConfig
|
XML JSON 前端开发
Spring之路(35)–使用JavaConfig配置Spring+SpringMVC+MyBatis(SSM)项目完整实例
本文目录 1. 背景 2. 本篇讲述方式 3. 新建项目 4. 导入jar包 5. 配置web项目 6. 配置Spring容器 6.1 将xml配置改为配置类 6.2 修改sqlSessionFactory配置 6.3 修改dataSource配置 6.4 修改MapperScannerConfigurer配置 6.5 修改扫描包 6.6 其他配置 7. 配置mybatis-config.xml 8. 编写映射文件 9. 开发各层逻辑代码 10. 总结
209 0
|
XML Java 数据库
Spring之路(31)–使用NamedParameterJdbcTemplate完成数据库操作(JavaConfig配置)
本文目录 1. 背景 2. 在配置类中配置数据源和namedParameterJdbcTemplate 3. 实现数据库操作组件BlogDao 4. 将BlogDao注册为bean 5. 测试 6. 总结
470 0
|
XML Java 数据格式
Spring之路(13)--在JavaConfig配置中装配bean
本文目录 1. 概述 2. 按类型自动装配实例 2.1 干干净净的歌手类、舞者类、舞台类 2.2 配置bean并自动装配 2.3 测试 3. 按名称自动装配 4. 总结
|
XML Java 程序员
Spring之路(8)--提高资源管理的灵活性(使用JavaConfig定义bean)
本文目录 1. 注解方式配置bean的局限性 2. 思考如何解决 3. 三种方式对比 4. 使用JavaConfig定义bean的具体实例 4.1 来个普普通通的类 4.2 来个普普通通的方法返回我们想要的对象 4.3 添加@bean注解,使方法的返回值成为bean 4.4 添加@Configuration注解启用配置 4.5 测试运行 5. 总结
102 0