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.mzph.cn/news/50574.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【Alibaba中间件技术系列】「RocketMQ技术专题」小白专区之领略一下RocketMQ基础之最!

应一些小伙伴们的私信&#xff0c;希望可以介绍一下RocketMQ的基础&#xff0c;那么我们现在就从0开始&#xff0c;进入RocketMQ的基础学习及概念介绍&#xff0c;为学习和使用RocketMQ打好基础&#xff01; RocketMQ是一款快速地、可靠地、分布式、容易使用的消息中间件&#…

剪枝基础与实战(4):稀疏训练及剪枝效果展示

稀疏训练是通过在损失loss中增加BN的 γ \gamma γ 参数的L1正则,从而让绝大多数通道对应的 γ \gamma γ值趋近与0, 从而使得模型达到稀疏化的效果:

cloud_mall-notes03

请求方式GetMapping&#xff08;11&#xff09;用途方法返回值GetMapping(“info”)查询管理员信息getByIdsysUserGetMapping(“info/{userId}”)查询管理员详情getByIdsysUserGetMapping(“info/{roleId}”)查询角色详情getByIdsysRoleGetMapping(“info/{categoryId}”)根据标…

mysql 04.子查询和多表查询

一、子查询定义 当我们进⾏语句查询的时候&#xff0c;总会遇到我们需要的条件需要通过另⼀个查询语句查询出来后才能进⾏&#xff0c;就是说A 查询语句需要依赖B 查询语句的查询结果&#xff0c;B 查询就是⼦查询&#xff0c;A 查询语句就是主查询&#xff0c;⼀个SQL语句可以…

三目运算符和“??”

1.什么是三目运算符&#xff1f; 三目运算符是一种固定的运算格式&#xff0c;它的作用是简化“ if ”操作。它的语法格式为“ a ? b : c ”&#xff0c;a为条件&#xff0c;是布尔表达式&#xff0c;如果 a 为 true &#xff0c;该表达式返回 b &#xff0c;否则返回 c 。 2…

AD(第一部分---绘制元件库)

5.元件库介绍及电阻容模型的创建 注&#xff1a;元件库创建是在&#xff0c;以.SchLib结尾的 注&#xff1a;右下角的Panels消失/出现 点击左上角 "视图""状态栏" (快捷键&#xff1a;VS) 此处的SCH Library就是元件库列表 RES____电阻 CAP____电容&am…

数学——七桥问题——图论

当涉及数学&#xff0c;有很多不同的话题可以讨论。你是否有特定的数学领域、概念或问题想要了解更多&#xff1f;以下是一些常见的数学领域和主题&#xff0c;你可以选择一个或者告诉我你感兴趣的具体内容&#xff0c;我将很乐意为你提供更多信息&#xff1a; 代数学&#xff…

JavaScript Es6_4笔记

JavaScript 进阶 文章目录 JavaScript 进阶深浅拷贝浅拷贝深拷贝递归实现深拷贝js库lodash里面cloneDeep内部实现了深拷贝JSON序列化 异常处理throwtry ... catchdebugger 处理this普通函数箭头函数改变this指向callapplybind 防抖节流 深浅拷贝 浅拷贝 首先浅拷贝和深拷贝只…

对于pycharm 运行的时候不在cmd中运行,而是在python控制台运行的情况,如何处理?

对于pycharm 运行的时候不在cmd中运行&#xff0c;而是在python控制台运行的情况&#xff0c;如何处理&#xff1f; 比如&#xff0c;你在运行你的代码的时候 它总在python控制台运行&#xff0c;十分难受 解决方法 在pycharm中设置下即可&#xff0c;很简单 选择运行点击…

突破电商单一垂直赛道:Chewy宠物用品如何飙升至美国市场50%以上

《美国商业资讯》2023年5月31日报道&#xff0c;宠物品牌Chewy的最新市值为 143 亿美元&#xff0c;毛利率同比增长90个基点&#xff0c;在美国的宠物电商市场&#xff0c;实现超过50%的市场占有率。 Chewy是一个涵盖各类宠物用品与宠物医疗的新兴品牌&#xff0c;后疫情时代迎…

专题-【B树的构建与删除】

构建&#xff1a; 删除&#xff1a; 叶子结点直接删&#xff1b; 非叶结点 找前驱&#xff08;左子树最右边&#xff09;/后继&#xff08;右子树最左边&#xff09;元素覆盖即可&#xff08;满足关键字个数取值范围&#xff09;&#xff1b; 这个更详细 『数据结构与算法』…

MySQL进阶篇之Explain执行计划

MySQL&#xff1a;Explain执行计划 使用explain关键字可以模拟优化器执行SQL查询语句&#xff0c;从而知道MySQL是如何处理你的SQL语句的&#xff0c;分析你的查询语句或是表结构的性能瓶颈。 认识explain EXPLAIN SELECT * FROM user_info i LEFT JOIN user_grade g on i.id …

Vue2Editor 图片上传及不允许粘贴图片

首先封装一下图片上传方法(纯前端)&#xff1a; import * as qiniu from qiniu-jsexport function uploadFile(file,token) {let fileNameLen file.name.length;let startPos file.name.lastIndexOf(".");//文件名const key new Date().getTime() _ file.name.…

前端三剑客入门一文解决

文章目录 HTML快速开发网站Flask页面结构标签基础标签超链接图片列表下拉框表格input系列多行文本form表单 网络请求HTML案例 CSSCSS盒模型CSS样式定义CSS选择器 CSS样式使用1. 在标签上直接写2. 在head标签中写3.写到css文件中 标签样式1. 高度和宽度2. 块级和行内标签3.字体设…

8.23笔记(手写),deeplabV2与V3

空洞卷积(Dilated convolution)如下图所示&#xff0c;其中 r 表示两列之间的距离(r1就是常规卷积了)。 池化可以扩大感受野&#xff0c;降低数据维度&#xff0c;减少计算量&#xff0c;但是会损失信息&#xff0c;对于语义分割来说&#xff0c;这造成了发展瓶颈。 空洞卷积可…

一分钟学算法-递归-斐波那契数列递归解法及优化

一分钟学一个算法题目。 今天我们要学习的是用递归算法求解斐波那契数列。 首先我们要知道什么是斐波那契数列。 斐波那契数列&#xff0c;又称黄金分割数列&#xff0c;是一个经典的数学数列&#xff0c;其特点是第一项&#xff0c;第二项为1&#xff0c;后面每个数字都是前…

鲁棒优化入门(5)—Matlab+Yalmip求解鲁棒优化编程实战

之前的博客&#xff1a;鲁棒优化入门&#xff08;二&#xff09;——基于matlabyalmip求解鲁棒优化问题 去年发布了使用Yalmip工具箱求解鲁棒优化问题的博客之后&#xff0c;陆陆续续有朋友问我相关的问题&#xff0c;有人形容从学习这篇博客到求解论文中的鲁棒优化问题&#x…

Mybatis 动态 SQL

动态 SQL 1. if 标签2. trim 标签3. where 标签4. set 标签5. foreach 标签 1. if 标签 if 标签有很多应用场景, 例如: 在用户进行注册是有些是必填项有些是选填项, 这就会导致前端传入的参数不固定如果还是将参数写死就很难处理, 这时就可以使用 if 标签进行判断 <insert …

2023年 Java 面试八股文(25w字)

目录 一.Java 基础面试题1.Java概述Java语言有哪些特点&#xff1f;Java和C有什么关系&#xff0c;它们有什么区别&#xff1f;JVM、JRE和JDK的关系是什么&#xff1f;**什么是字节码?**采用字节码的好处是什么?Oracle JDK 和 OpenJDK 的区别是什么&#xff1f; 2.基础语法Ja…

通讯协议048——全网独有的OPC HDA知识一之接口(三)IOPCHDA_Server

本文简单介绍OPC HDA规范的IOPCHDA_Server接口方法&#xff0c;更多通信资源请登录网信智汇(wangxinzhihui.com)。 1&#xff09;HRESULT GetItemAttributes(pdwCount , ppdwAttrID, ppszAttrName, ppszAttrDesc, ppvtAttrDataType) 此函数返回服务器支持的项属性。也支持供应…