使用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" );
  
     }
}

  

目录
相关文章
|
开发框架 Java 开发者
Spring-bean
Spring-bean
32 0
|
4月前
|
XML Java 数据格式
Spring中的bean相关问题
Spring Bean是构建Spring应用的核心元素。熟悉Bean的声明方式、作用域、生命周期以及自动装配机制对于开发高效、健壮的Spring应用至关重要。希望以上内容能够为您在使用Spring框架时提供有效的指南和帮助。
37 1
|
6月前
|
XML Java 数据格式
Spring Bean
【4月更文挑战第30天】Spring Bean
33 0
|
监控 Java Spring
1.6 Spring Bean
在Spring应用中,Spring IoC容器可以创建、装配和配置应用组件对象,这里的组件对象称为Bean(Bean是注册到Spring容器中的Java类,任何一个Java类都可以是一个Bean)。
53 0
|
XML Java 数据库
Spring 注解配置
Spring 注解配置
|
XML Java 数据格式
Spring中Bean
Spring中Bean
59 1
|
Java 容器 Spring
|
XML Java 数据格式
Spring Bean详解
Spring Bean详解
306 0
Spring Bean详解
|
XML Java 数据格式
Spring(七)之基于注解配置
基于注解的配置 从 Spring 2.5 开始就可以使用注解来配置依赖注入。而不是采用 XML 来描述一个 bean 连线,你可以使用相关类,方法或字段声明的注解,将 bean 配置移动到组件类本身。 在 XML 注入之前进行注解注入,因此后者的配置将通过两种方式的属性连线被前者重写。
759 0