发布时间:2023-01-17 文章分类:编程知识 投稿人:王小丽 字号: 默认 | | 超大 打印

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方式的自动装配,只能装配“非字面量”数值