使用Spring的JavaConfig

简介:

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

1
2
3
4
5
6
7
8
     xsi:schemaLocation="http://www.springframework.org/schema/beans
  
     < 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
     xsi:schemaLocation="http://www.springframework.org/schema/beans
  
     < 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" );
  
     }
}

  

目录
相关文章
|
XML Java 数据格式
【Spring】Spring常用注解(上)
【Spring】Spring常用注解(上)
53 0
|
Java Spring 容器
【Spring】Spring常用注解(下)
【Spring】Spring常用注解(下)
73 0
|
Java Spring
spring使用注解开发
spring使用注解开发
52 0
|
XML Java 数据库
Spring 注解配置
Spring 注解配置
|
XML druid Java
Spring | 注解开发
Spring | 注解开发
|
XML Java API
Spring--Spring5事物管理(1)
Spring--Spring5事物管理(1)
72 0
|
XML Java 关系型数据库
Spring--Spring5事物管理(2)
Spring--Spring5事物管理(2)
92 0
|
XML 搜索推荐 Java
【Spring5】基于注解的Bean管理简直是Spring中的Spring(上)
文章目录 1 什么是注解 2 基于注解方式实现对象的创建 3 组件扫描配置的细节 4 基于注解实现属性的注入 4.1 几种注解概述 4.2 @Autowire注解演示 4.3 @Qualifier注解演示 4.4 @Value注解演示 5 纯注解的开发模式 写在最后
【Spring5】基于注解的Bean管理简直是Spring中的Spring(上)
|
Java Spring
【Spring5】基于注解的Bean管理简直是Spring中的Spring(下)
文章目录 1 什么是注解 2 基于注解方式实现对象的创建 3 组件扫描配置的细节 4 基于注解实现属性的注入 4.1 几种注解概述 4.2 @Autowire注解演示 4.3 @Qualifier注解演示 4.4 @Value注解演示 5 纯注解的开发模式 写在最后
【Spring5】基于注解的Bean管理简直是Spring中的Spring(下)
|
XML Java 数据格式