首页 > 其他分享 >学习笔记——Spring管理第三方bean;Spring中Bean的作用域;Spring中Bean的生命周期;Spring中bean的后置处理器;Spring中自动装配

学习笔记——Spring管理第三方bean;Spring中Bean的作用域;Spring中Bean的生命周期;Spring中bean的后置处理器;Spring中自动装配

时间:2023-01-17 16:57:51浏览次数:45  
标签:装配 Spring db bean Bean 自动

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

标签:装配,Spring,db,bean,Bean,自动
From: https://www.cnblogs.com/isDaHua/p/17057211.html

相关文章

  • SpringBoot 拦截器 & 过滤器
    拦截器Java里的拦截器是动态拦截Action调用的对象,它提供了一种机制可以使开发者在一个Action执行的前后执行一段代码,也可以在一个Action执行前阻止其执行,同时也提供了一种......
  • Spring Cloud中Hystrix的请求合并
    前言Hystrix请求合并用于应对服务器的高并发场景,通过合并请求,减少线程的创建和使用,降低服务器请求压力,提高在高并发场景下服务的吞吐量和并发能力在正常的分布式请求中,客......
  • Spring的OncePerRequestFilter 过滤器
    Spring的OncePerRequestFilter原文链接:https://blog.csdn.net/weixin_43944305/article/details/119923969Spring的OncePerRequestFilterOncePerRequestFilter顾名......
  • Springboot之OncePerRequestFilter 过滤器
    Springboot之OncePerRequestFilter过滤器原文链接:https://www.cnblogs.com/javalinux1/p/16389683.html类说明OncePerRequestFilter能够确保在一次请求只通过一次filte......
  • [spring security]使用BCryptPasswordEncoder对明文密码加密后匹配失败
    参考:https://www.cnblogs.com/flydean/p/15292400.html问题项目中使用SpringSecurity+JWT做认证授权做修改密码逻辑时原逻辑如下selectoldPwdfromuserwherei......
  • Spring Boot 配置文件
    SpringBoot配置文件SpringBoot官方提供了两种常用的配置文件格式,分别是properties、yml格式。相比于properties来说,yml更加年轻,层级也是更加分明。properties和yml......
  • Spring Boot 日志文件
    SpringBoot日志文件日志文件是用于记录系统操作事件的记录文件或文件集合,可分为事件日志和消息日志。具有处理历史数据、诊断问题的追踪以及理解系统的活动等重要作用。......
  • SpringCloud学习(1)
    今天学习谷粒商城的openfeign远程调用的时候,启动项目后报错nestedexceptionisjava.lang.IllegalStateException:NoFeignClientforloadBalancingdefined.Didyou......
  • 学习笔记——Spring底层IOC实现;Spring依赖注入数值问题;Spring依赖注入方式
    2023-01-14一、Spring底层IOC实现1、IOC:将对象的控制器反转给Spring2、BeanFactory与ApplicationContext(1)BeanFactory:IOC容器的基本实现,是Spring内部的使用接口,是面向......
  • spring 管理的线程池实现优雅关闭
      创建线程池时, setWaitForTasksToCompleteOnShutdown  setAwaitTerminationSeconds//将ThreadPoolTaskExecutor实例交给Spring管理@BeanpublicThreadPool......