Spring中Bean的不同配置方式
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Spring中Bean的不同配置方式相关的知识,希望对你有一定的参考价值。
Bean的配置方式一共分为三种:
1.基于XML(适用于第三方类库,无法在类中写注解以及写命名空间的配置等情况)
2.基于注解(适用于大部分情况)
3.基于Java类
以下是三种不同情况的配置方式
基于XML | 基于注解 | 基于Java类配置 | |
Bean 的定义 | <bean class="com.gin.UserName" /> |
@Component(或衍生@Repositry、@Service及@Controller) public class UserName {...} |
@Configuration public class Test{ @Bean public UserName userName() { return new UserName(); } } |
Bean的名称 | <bean id="userName" class="com.gin.UserName" /> |
@Component("userName")//空的默认值为userName public class UserName {...} |
@Bean(”userName“) public UserName userName() { return new UserName(); } |
Bean的注入 |
<property name="userName" ref-bean="userName" /> 或 <p:userName-ref="userName"> |
public class UserService{ @Autowired @Qualifier("userName")//@Qualifier是可选项 private UserName userName; } |
@Bean(”userName“) public UserName userName() { return new UserName(); }
@Bean public UserService userService() { UserService userService = new UserService(); userService.setUserName(userName()); } 或 @Autowired private DaoUsername daoUsername;
@Bean public UserService userService() { UserService userService = new UserService(); userService.setUserName(daoUsername.userName()) } |
Bean的生命过程方法 |
<bean id="userName" class="com.gin.UserName" init-method="init" destory-method="destory" /> //初始化和销毁都只有一个 |
public class UserService{ @Autowired private UserName userName;
@PostConstruct public void init() {} @PreDestory public void destory() {} }//初始化和销毁可以有多个 |
无 |
Bean的作用范围 | bean id="userName" class="com.gin.UserName" scope="prototype" /> |
@Scope("protptype") public class UserService{} |
@Scope("protptype) @Bean public UserName userName() { return new UserName(); } |
以上是关于Spring中Bean的不同配置方式的主要内容,如果未能解决你的问题,请参考以下文章
Spring -- Spring配置文件详解(Bean标签的基本配置(id,class)/ 范围配置 / 不同范围时的对象的创建时期 / Bean生命周期配置(生命周期方法) )
Spring -- Spring配置文件详解(Bean实例化的三种方式IoC(控制反转) 与 DI(依赖注入)依赖注入详解)