Spring注解中的@Component @Configuration @Bean简介说明

java-教程王 Spring 发布时间:2022-04-03 09:53:17 阅读数:3766 1
下文笔者讲述Spring注解中@Component @Configuration @Bean功能的简介说明
@Component组件可替代@Configuration注解
 原因如下所示:@Component包含@Configuration注解
@Target({ElementType.TYPE})
@Retention(RetentionPolicy.Runtime)
@Documented
@Component  //看里!!!
public @interface Configuration {
    String value() default "";
  }

@Bean注解的功能

 Bean注解主要用于方法上,类似于工厂方法
 用于返回一个Bean对象
例:
使用@Configuration 来注解类表示类可以被 Spring 的 IoC 容器所使用,作为 bean 定义的资源。

@Configuration
public class AppConfig {
    @Bean
    public UserService userService() {
        return new UserServiceImpl();
    }
}
其效果类似于xml配置
<beans>
    <bean id="userService" class="com.java265.services.UserServiceImpl"/>
</beans>

@Configuration
public static class Config {
    @Bean
    public UserBean userBean() {
        return new UserBeanImpl();
    }

    /*
	*这是一个错误的写法,因为userBean()会new一个实例
	*将跳出Spring容器外
	*/
    @Bean
    public UserBeanConsumer userBeanConsumer() {
        return new UserBeanConsumer(userBean());
    }
}


@Component
public static class Config {

    @Bean
    public UserBean userBean() {
        return new UserBeanImpl();
    }

    /*
	*这是一个错误的写法,因为userBean()会new一个实例
	*将跳出Spring容器外
	*/
    @Bean
    public UserBeanConsumer userBeanConsumer() {
        return new UserBeanConsumer(userBean());
    }
}
以上代码的正确写法
@Configuration
public static class Config {
    @Autowired
    UserBean userBean;


    @Bean
    public UserBean userBean() {
        return new UserBeanImpl();
    }
 
    @Bean
    public UserBeanConsumer userBeanConsumer() {
        return new UserBeanConsumer(userBean);
    }
}
版权声明

本文仅代表作者观点,不代表本站立场。
本文系作者授权发表,未经许可,不得转载。

本文链接: https://www.Java265.com/JavaFramework/Spring/202204/2651.html

最近发表

热门文章

好文推荐

Java265.com

https://www.java265.com

站长统计|粤ICP备14097017号-3

Powered By Java265.com信息维护小组

使用手机扫描二维码

关注我们看更多资讯

java爱好者