一、点睛
java配置是spring4.x推荐的配置方式,可以完全替代xml的配置;java配置也是SpringBoot推荐的配置方式。
Java配置是通过@Configuration和@Bean来实现的。
@Configuration:声明当前类是一个配置类,相当于spring配置的xml文件;
@Bean注解在方法上 ,声明当前类方法返回值是一个bean
我们的主要原则是,全局配置使用java配置(如数据库配置,mvc相关配置)业务bean的配置使用注解配置(如@Service @Component @Controlle )
@Bean注解在方法上 ,声明当前类方法返回值是一个bean
我们的主要原则是,全局配置使用java配置(如数据库配置,mvc相关配置)业务bean的配置使用注解配置(如@Service @Component @Controlle )
二、示例
(1)编写功能类的bean
(1)编写功能类的bean
public class Test0{
public String sayHello(String word){
return “Hello”+ word +“!”;
}
}
public String sayHello(String word){
return “Hello”+ word +“!”;
}
}
代码解释:1、此处没有使用@Service 声明Bean
(2)使用功能类的Bean
public class Test1 {
Test0 test0;
public class Test1 {
Test0 test0;
public void test1 (Test0 test0){
this.test0=test0
}
this.test0=test0
}
public String sayHello1(String word){
return test0.sayHello(word);
}
}
代码解释:此处没有使用@Service声明Bean 此处没有没有使用@Autowired注解注入Bean
return test0.sayHello(word);
}
}
代码解释:此处没有使用@Service声明Bean 此处没有没有使用@Autowired注解注入Bean
(3)配置类:
@Configuration
@Configuration
public class JavaConfig {
@Bean
@Bean
public Test0 test0(){
return new Test0()
}
return new Test0()
}
@Bean
public Test1 test1(){
Test1 test1 =new Test1;
test1.sayHello1(test0());
return test1;
}
public Test1 test1(){
Test1 test1 =new Test1;
test1.sayHello1(test0());
return test1;
}
// @Bean
// public Test1 test1(Test0 test0){
// Test1 test1=new Test1();
// Test1 test1=new Test1();
// test1.sayHello1(test0);
// return test1
// }
// }
}
代码解释:1、使用@Configuration 注解表明当前类是一个配置类这意味这个类里面有0个或者多个@Bean 注解 此处没有使用包扫描,因为所有bean都在此类中定义了
代码解释:1、使用@Configuration 注解表明当前类是一个配置类这意味这个类里面有0个或者多个@Bean 注解 此处没有使用包扫描,因为所有bean都在此类中定义了
2、 使用@Bean 注解声明当前方法Test0的返回值是一个Bean bean的名称是方法名。
3、 注入Test0的Bean的时候直接调用test0()。
4、另外一种注入方式 直接将Test0 作为参数 给test1()这也是spring提供的一个极好的功能 在spring容器中 只要容器中存在某个Bean 就可以在另外一个Bean 的声明方法中的参数中注入。
3、 注入Test0的Bean的时候直接调用test0()。
4、另外一种注入方式 直接将Test0 作为参数 给test1()这也是spring提供的一个极好的功能 在spring容器中 只要容器中存在某个Bean 就可以在另外一个Bean 的声明方法中的参数中注入。
(4) 运行 和spring配置一样