SpringIOC

配置bean

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

id:唯一的。

setter注入

<bean id="" class="">

<property name="" value=""></property>

</bean>

构造器注入

<bean id="" class="">

<constructor-arg value="" type="java.lang.String"></constructor-arg>

<constructor-arg value="" index="0"></constructor-arg>

</bean>

细节

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

<property name="" ref=""></property>

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

<bean class="">

<constructor-arg value=""></constructor-arg>

</bean>

bean的作用域

<bean id="" class="" scope="prototype/singleton(默认)"></bean>

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

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

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

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

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

3.调用bean的初始化方法

4.bean可以使用

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

<bean id="" class="" init-method="" destroy-method=""></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 id="factory" class="com.instancefactory"></bean>

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

<bean id="" factory-bean="factory" factory-method="getcar">

<constructor-arg value="ford"></constructor-arg>

</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;

}

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 文章作者:Tyan博客:noahsnail.com 3.4 Dependencies A typical ente...
    SnailTyan阅读 4,201评论 2 7
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 134,948评论 18 139
  • Spring简介: Spring是一个IOC(DI)和AOP容器框架: 轻量级:Spring是非侵入性的,基于开发...
    JHMichael阅读 623评论 0 3
  • 如下是整篇文章的结构,所需阅读时间大约20min Spring简介 Spring框架由Rod Johnson开发,...
    李序锴阅读 912评论 0 15
  • 一言不合就写个汇总短文。 因为要写一些东西来记笔记以及心得什么的,必然要码字,既然码字就想要码的又快又好,那么怎么...
    瘦长的丰一禾阅读 224评论 0 0