SpringIOC

配置bean

class: bean 的全类名,通过反射的方式在IOC容器中创建Bean,所以要求Bean中必须有无参数的构造方法。

id:唯一的。

setter注入

构造器注入

细节

1.用property的属性简历bean之间的引用关系

2.在内部声明bean(不能被别的bean引用)

bean的作用域

prototype:每申请一次生成一个新的bean(容器初始化时不创建)

singleton:整个容器声明周期内只创建一个bean(容器初始化时就创建了这个bean)

IOC容器中bean的生命周期方法

1.通过构造器或工厂方法创建bean实例

2.为bean的属性设置值和对其他bean的引用

3.调用bean的初始化方法

4.bean可以使用

5.容器关闭时,调用bean的销毁方法

自己定义初始化和销毁方法。

实现BeanPostProcessor接口,并具体提供以下两个方法:

init-method之前被调用

Object postProcessBeforeInitialization(Object bean,String beanName)

init-method之后被调用

Object postProcessAfterInitialization(Object bean,String beanName)

可以在以上两个方法中修改返回的bean,甚至返回一个新的bean。

通过静态工厂方法来配置bean

class:指向静态工厂方法的全类名

factory-method:指向静态工厂方法的名字

constructor-arg:工厂方法需要传入参数时,用这个配置参数。


通过实例工厂方法来配置bean

配置工厂实例

通过实例工厂方法来配置bean

用注解联系两个bean之间的关系

1.某个变量或set方法之前加@Autowired注解,如下所示

@Autowired

private  UserService uservice

这样就可以在ioc容器中自动找相应的bean

2.若一个接口有多个类型兼容的实现bean,那么@Autowired之后的括号中可以命名一个同一实现的属性名,如下

@UserService("userService")

public class UserServiceImpl implents UserService


@Autowired

public void setUserService(UserService userService)

3.也可以在对象和set方法之前加上@Autowired和@Quallifier如下所示

@Autowired

@Qualifier("userRepositoryImpl")

public void setUserRepository(UserRepository userrepository){

this.userrepository=userrepository;

}

你可能感兴趣的:(SpringIOC)