当前位置: 首页 > news >正文

3、Spring_容器执行

容器执行点

1.整合 druid 连接池

  • 添加依赖

    <dependency><groupId>com.alibaba</groupId><artifactId>druid</artifactId><version>1.2.8</version>
    </dependency>
    

1.硬编码方式整合

  • 新建德鲁伊配置

    <?xml version="1.0" encoding="UTF-8"?>
    <beans xmlns="http://www.springframework.org/schema/beans"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd"><bean id="dataSource" class="com.alibaba.druid.pool.DruidDataSource"><property name="username" value="root"></property><property name="password" value="123456"></property><property name="driverClassName" value="com.mysql.cj.jdbc.Driver"></property><property name="url" value="jdbc:mysql://localhost:3306/mybatis"></property></bean>
    </beans>
    
  • 注意

    • 属性是通过 set 方法注入进来的

2.使用占位符获取连接数据

  • 简历 db.properties 配置文件

    username=root
    password=123456
    driverClassName=com.mysql.cj.jdbc.Driver
    url=jdbc:mysql://localhost:3306/mybatis
  • 配置引用db.properties

     <bean id="dataSource1" class="com.alibaba.druid.pool.DruidDataSource"><property name="username" value="${username}"></property><property name="password" value="${password}"></property><property name="driverClassName" value="${driverClassName}"></property><property name="url" value="${url}"></property></bean>
    <!--    获取db.properties 配置文件--><bean class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer"><property name="location" value="db.properties"></property></bean>
    
  • 引入 db.properties 缩写

    <context:property-placeholder location="db.properties"/>
    

3.注意事项

  • <context:property-placeholder location=“db.properties”/> 使用这个标签加载配置会加载到电脑系统配置

  • 解决方式

    • 给配置文件加上前缀变量

      jdbc.username=root
      jdbc.password=123456
      jdbc.driverClassName=com.mysql.cj.jdbc.Driver
      jdbc.url=jdbc:mysql://localhost:3306/mybatis
      username=123
      
    • 添加属性

      <context:property-placeholder system-properties-mode="NEVER" location="db.properties"/>
      
  • 加载多个配置文件可以用 * 代替

    <context:property-placeholder system-properties-mode="NEVER" location="*.properties"/>
    

2.容器总结

1.容器层级结构

  • 按两次 shift 搜索 BeanFactory

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-nlz4ayzE-1692611903091)(picture/image-20221028105344301.png)]

  • 按 ctrl + h 查看继承结构

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-IaE636E5-1692611903094)(picture/image-20221028105617294.png)]

2.创建容器

  • BeanFactory 是容器顶层接口

  • ApplicationContext 核心接口

  • AbstractApplicationContext 抽象类,提供了获取 bean 以及加载资源的功能

  • ClassPathXmlApplicationContext 装载bean的,做初始化的

3.bean 配置

<bean id="user" class="cn.sycoder.lifecycle.User" init-method="init" destroy-method="destroy" scope="默认单例" autowire="byName" lazy-init="false"><property name="name" value="sy"></property></bean>
  • lazy-init:如果开启懒加载,默认是调用时才创建bean
  • init-method:初始化方法
  • destroy-method:销毁方法
  • scope:作用域,单例,原型
  • autowire:自动注入
  • id:代表名称,必须唯一
  • class:全限定类名

4.di 注入

  • constructor-arg:构造器注入
  • property : setter 注入
  • 集合注入

5.注意

  • 下去的时候,一定要去多练,把 bean 配置, di 注入,以及配置第三方bean 和引入配置文件全部掌握,都是重点
http://www.lryc.cn/news/137582.html

相关文章:

  • 五、pikachu之RCE
  • 最大不相交区间数量
  • Oracle给表空间添加容量
  • 2023年大数据与区块链国际会议 | EI、Scoups检索
  • 【洛谷算法题】P1000-超级玛丽游戏【入门1顺序结构】
  • ubuntu or kylinos软件安装错误的终极解决方案
  • 30分钟Python自动化从入门到实战(一)
  • FOC之SVPWM学习笔记
  • DSO 系列文章(3)——DSO后端正规方程构造与Schur消元
  • php 使用ES
  • 距离我成为炎帝的一次(比较近的一次)
  • Protobuf在IDEA中的插件安装教程
  • 中间件(上)
  • Python快速检验数据分布
  • uniapp微信小程序点击右上角菜单分享功能权限配置
  • 【OpenVINOSharp】在英特尔® 开发者套件爱克斯开发板使用OpenVinoSharp部署Yolov8模型
  • Django的模型层
  • idea 新建servlet 访问提示404 WebServlet注解找不到包 报错
  • 【EA-ISET协会】Elsevier|2区智慧农业类SCIEI, 进展顺,3个月左右录用~
  • Class类getName获取类名方法详细说明
  • 凉而不冷 柔而不弱 三菱重工海尔舒适风科技助您整夜安眠
  • YOLOv5基础知识入门(7)— NMS(非极大值抑制)原理解析
  • Gpt微信小程序搭建的前后端流程 - 后端基础框架的搭建(三)
  • jstat(JVM Statistics Monitoring Tool):虚拟机统计信息监视工具
  • 【ARM】Day6 cotex-A7核UART总线实验
  • HTTPS代理搭建技巧分享
  • 第四章:树形结构的关联式容器(map+set)
  • SpringBoot +Vue3 简单的前后端交互
  • 【Android】Mobile-Security-Framework-MobSF Manifest 静态扫描规则
  • 【C++】初谈迭代器