学习笔记——Spring管理第三方bean;Spring中Bean的作用域;Spring中Bean的生命周期;Spring中bean的后置处理器;Spring中自动装配
2023-01-17
一、Spring管理druid步骤
(1)导入jar包
<!-- https://mvnrepository.com/artifact/com.alibaba/druid --> <dependency> <groupId>com.alibaba</groupId> <artifactId>druid</artifactId> <version>1.1.0</version> </dependency> <!-- https://mvnrepository.com/artifact/mysql/mysql-connector-java --> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>8.0.26</version> </dependency>
(2)编写db.properties配置文件
在“模块名.src.main.resources”下创建“db.properties”
#里面存放的数据格式为key=value db.driverClassName=com.mysql.cj.jdbc.Driver
db.url=jdbc:mysql://localhost:3306/db220106?serverTimezone=UTC
db.username=用户名
db.password=密码
(3)编写applicationContext.xml相关代码
<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/schema/context" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/context https://www.springframework.org/schema/context/spring-context.xsd"> <!-- 加载外部属性文件db.properties--> <context:property-placeholder location="classpath:db.properties"></context:property-placeholder> <!-- 装配数据源--> <bean id="dataSource" class="com.alibaba.druid.pool.DruidDataSource"> <property name="driverClassName" value="${db.driverClassName}"></property> <property name="url" value="${db.url}"></property> <property name="username" value="${db.username}"></property> <property name="password" value="${db.password}"></property> </bean> </beans>
二、Bean的作用域
1、语法:
在bean标签中加一个“scope”属性即可。
2、四个作用域
(1)singleton(默认值)
单例(在容器中只有一个对象)
创建容器对象时,spring创建对象
(2)prototype
多例(在容器中有多个对象)
(3)request:请求域
当前请求有效,离开请求域失效
当前请求:URL不变即为当前请求
(4)session:会话域
当前会话,当前浏览器不关闭不更换即为当前会话。
三、Spring中Bean的生命周期
1、生命周期的过程:
①通过构造器或工厂方法创建bean实例
②为bean的属性设置值和对其他bean的引用
③调用bean的初始化方法
④bean可以使用了
⑤当容器关闭时,调用bean的销毁方法
四、bean的后置处理器
1、作用:在调用初始化方法前后对bean进行额外的处理。
2、实现:
(1)实现BeanPostProcessor接口
(2)重写方法
①postProcessBeforeInitialization(Object,String):在bean的初始化之前执行
②postProcessAfterInitialization(Object,String):在bean的初始化之后执行
(3)注意
装配后置处理器会为每个bean均装配,不能为局部bean装配后置处理器
五、Spring中自动装配
1、Spring中提供两种装配方式
(1)自动装配
(2)手动装配
2、Spring自动装配语法及规则
在bean标签中添加属性:Autowire即可
(1)byName
对象中属性与容器中的beanId进行匹配,如果属性名与beanId数值一致,则自动装配成功
(2)byType
对象中属性类型与容器中class进行匹配,如果唯一匹配则自动装配成功
①匹配0个:未装配
②匹配多个:会报错
(3)基于XML方式的自动装配,只能装配“非字面量”数值
相关文章
- 深入探讨Java中的异常与错误处理
- 研究学习Kotlin的一些方法
- 数据显示Java热度持续下落,日子屈指可数?
- 2017年5月编程语言排行榜:Java与C语言优势正开始缩小
- Java多线程之内置锁与显示锁
- Java线程池的理论与实践
- 白话阿里巴巴Java开发手册(编程规约)
- 关于Java你不知道的十件事
- Java服务化系统线上应急和技术攻关,你必须掌握的Linux命令
- Java实现高斯模糊和图像的空间卷积
- Java阻塞队列实现原理分析
- NPM使用技巧
- Node.js对Java开发者而言是什么?
- Java反射机制应用实践
- 理解RxJava中的Single和Completable
- 2017年你不能错过的Java类库
- 大规模集群下的Hadoop NameNode
- 从源码解密Spark内存管理
- 2017年3月编程语言排行榜:Swift首次进入前十
- JVM热点技术:Java类的加载机制