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);
}
}
版权声明
本文仅代表作者观点,不代表本站立场。
本文系作者授权发表,未经许可,不得转载。


