springboot注解之@Configuration和@Bean组合使用

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这个注解 这是一个踩坑记录

4.总结

4.1 在类上加@Component作用也是把这个类交给spring容器管理

4.2 @Bean注解的作用和@Component的作用一样

经验分享 程序员 微信小程序 职场和发展