重识Spring框架(2)

SpringIoC的XML配置使用

定义bean

<!-- 可以直接使用name属性设置别名,多个可以用空格 , ; 多种方式进行分隔 -->
<bean class="com.qiyang.User" id="user" name="user2 user3,user4;user5">
      <description>描述bean的作用</description>
</bean>

单独配置别名:

<!-- 配置bean的别名 -->
<alias name="user" alias="userAlias" />
<!-- 导入另外一个spring的配置文件 -->
<import resource="spring-ioc.xml" />

依赖注入:

  1. 普通JavaBean基于setter 或 construction
  2. 注意null、Map、List、Date等类型的注入
  3. 自定义类型的注入

控制bean的加载顺序:

<!-- depends-on="wife" 优先加载 wife 控制bean的加载顺序 -->
<bean class="com.qiyang.Person" id="person" scope="singleton" depends-on="wife" /><bean class="qiyang.Wife" id="wife" />

懒加载:

<!-- 懒加载,使用是才会加载 -->
<bean class="com.qiyang.Wife" id="wifeLazy" lazy-init="true" />

工厂模式创建bean:

<!--静态工厂-->
<bean class="com.qiyang.Person" id="personChild" 
  factory-method="createPersonFactory" />

<!--抽象工厂-->
<bean class="com.qiyang.PersonFactory" id="factory" />
<bean class="com.qiyang.Person" id="personFactory" 
  factory-bean="factory" factory-method="createPersonFactoryMethod" />

自动注入:支持byName byType constructor,优先根据名字,其次是参数类型

作用域:单例(默认)、原型bean(多例)

scope="prototype"
scope="singleton"
## web相关
scope="request"
scope="session"
scope="application"
scope="websocket"

生命周期回调:

生命周期函数三种方式:

  1. 实现接口:InitializingBean、DisposableBean,注意销毁的触发时机
public class Person implements InitializingBean, DisposableBean {
    public void destroy() throws Exception {
        System.out.println("销毁bean,注意不是程序执行完就销毁,可调用ioc容器close方法触发器销毁");
    }
    public void afterPropertiesSet() throws Exception {
        System.out.println("Person加载");
    }
}
  1. 自定义init() 和 destroy() 方法
<bean class="com.qiyang.Person" id="autoPerson" autowire="constructor" init-method="initByConfig" destroy-method="destroyByConfig"></bean>
  1. 注解:@PostConstruct、 @PreDestroy

如何创建第三方bean?

例如:druid数据库连接池,与配置普通bean没啥两样

如何导入属性文件?

<!-- 引入外部属性资源文件 ${xxx} 获取即可 -->
<context:property-placeholder location="jdbc.properties" />

SPEL(spring表达式语言)

  1. 作为了解,不常用
  2. 可以做计算、做属性引用,方法调用、静态方法调用等
  3. 语法:#{xxxx表达式}

好了,本期内容就是这么多,希望能够帮助到您,感谢您能读到最后,如果觉得内容不错,请您点赞转发给予鼓励,咱们下期再见。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值