springboot注解之@Configuration和@Bean组合使用
1.@Configuration作用
相当于传统的 xml 配置文件,如果有些第三方库需要用到 xml 文件,建议仍然通过 @Configuration 类作为项目的配置主类——可以使用 @ImportResource 注解加载 xml 配置文件。
2.@Bean注解的作用
用 @Bean 标注方法等价于 XML 中配置的 bean。
相当于 XML 中的, 放在方法的上面,而不是类,意思是产生一个 bean, 并交给 spring 管理。
3.demo示例
目的:
在springboot项目中,把一个类交给spring容器管理
3.1 写一个配置类
package com.shaoming.config;
import com.shaoming.config.util.MyUtil;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
/**
* @Auther: shaoming
* @Date: 2020/9/13 12:50
* @Description:
*/
@Configuration
public class BeanConfig {
@Bean
public MyUtil getMyUtil(){
MyUtil myUtil = new MyUtil();
return myUtil;
}
}
说明:
@Bean只能标注方法上
返回值的对象对应的类交给spring容器管理
3.2写测试类进行测试
package com.shaoming.test;
import com.shaoming.config.util.MyUtil;
import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
/**
* @Auther: shaoming
* @Date: 2020/9/13 12:53
* @Description:
*/
@SpringBootTest
public class MyTest {
@Autowired
private MyUtil myUtil;
@Test
public void test1(){
myUtil.sayHi();
}
}
/**
控制台输出:
sayHi Method
*/
注意点:
springboot版本不同,测试类使用的注解有时候也是不同的
之前老的版本,需要在类上加上
@SpringbootTest和@@RunWith(SpringRunner.class)
现在新的版本,只需要一个@SpringbootTest这个注解
这是一个踩坑记录