Spring注解中的@Component @Configuration @Bean简介说明
下文笔者讲述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); } }
版权声明
本文仅代表作者观点,不代表本站立场。
本文系作者授权发表,未经许可,不得转载。