@component与@Configuration创建bean

导读:本篇文章讲解 @component与@Configuration创建bean,希望对大家有帮助,欢迎收藏,转发!站点地址:www.bmabk.com

  • @configuration配置

针对@configuration,首先@Configuration与@Bean搭配使用,一般在项目中定义配置累才会使用这个注解

@Configuration

代表这个类是一个配置类,可理解为用spring的时候xml里面的<beans>标签

@Bean

用来定义一个bean,可以指定初始、销毁方法,及bean范围等,可理解为用spring的时候xml里面的<bean>标签

  • bean的管理方式

Spring帮助我们管理Bean分为两个部分,一个是注册Bean,一个装配Bean

。 完成这两个动作有三种方式,

一、是使用自动配置的方式、

二、是使用JavaConfig的方式,

三、是使用XML配置的方式。

  • 自动配置

针对于@Component注解:使用@Component去告诉Spring,我是一个bean,你要来管理我,然后使用@AutoWired注解去装配Bean(所谓装配,就是管理对象直接的协作关系)(参考来自Spring之@Configuration、@Component、@Bean – 云+社区 – 腾讯云 (tencent.com))。

@Configuration
@ConfigurationProperties("remote")
@Data
public class RemoteProperties {

    /**
     * 调用ip
     */
    private String host;

    /**
     * 调用本地ip
     */
    private String ip;

}

  • JavaConfig配置

 @Configuration其实就是告诉spring,spring容器要怎么配置(怎么去注册bean,怎么去处理bean之间的关系(装配))。@Bean的意思就是,我要获取这个bean的时候,你spring要按照这种方式去帮我获取到这个bean。

@Configuration
public class BeanConfig {

    @Bean
    public ThreadPoolTaskScheduler threadPoolTaskScheduler() {
        ThreadPoolTaskScheduler executor = new ThreadPoolTaskScheduler();
        // 线程池数量
        executor.setPoolSize(Runtime.getRuntime().availableProcessors());
        //设置好了之后可以方便我们定位处理任务所在的线程池
        executor.setThreadNamePrefix("charge-task-Executor-");
        //用来设置线程池关闭的时候等待所有任务都完成再继续销毁其他的Bean
        executor.setWaitForTasksToCompleteOnShutdown(true);
        //该方法用来设置线程池中任务的等待时间,如果超过这个时候还没有销毁就强制销毁,以确保应用最后能够被关闭,而不是阻塞住
        executor.setAwaitTerminationSeconds(60);
        return executor;
    }
}

  • xml的方式

<bean>标签就是告诉spring怎么获取这个bean,各种<ref>就是手动的配置bean之间的关系。

用@Bean注解的方法:会实例化、配置并初始化一个新的对象,这个对象会由spring IoC 容器管理。

  • 针对@Component与@Configuration同时对同一对象生成bean

@Configuration 加 @Bean 会创建一个 userName 不为 null 的 UserManager 对象,

而 @Component 也会创建一个 userName 为 null 的 UserManager 对象

那么我们在其他对象中注入 UserManager 对象时,到底注入的是哪个对象?

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

文章由极客之家整理,本文链接:https://www.bmabk.com/index.php/post/12986.html

(0)
小半的头像小半

相关推荐

极客之家——专业性很强的中文编程技术网站,欢迎收藏到浏览器,订阅我们!