Spring学习的第二天

news/2024/5/15 6:35:09/文章来源:https://www.cnblogs.com/bkylxm/p/16708966.html

1. Spring 管理第三方资源

  • 导入Druid 坐标

     <dependency>
      <groupId>com.alibaba</groupId>
         <artifactId>druid</artifactId>
         <version>1.1.16</version>
         </dependency>
     <dependency>
  • 配置数据源对象作为Spring管理的bean

     <bean id="dataSource" class="com.alibaba.druid.pool.DruidDataSource">
      <property name="driverClassName" value="com.mysql.jdbc.Driver"/>
         <property name="url" value="jdbc:mysql://localhost:3306/myabtis"/>
         <property name="username" value="root"/>
         <property name="password" value="123456"/>
     </bean>

2. 加载properties文件

  • 开启context命名空间

    image-20220919114844662

  • 使用context命名空间,加载指定的properties文件

     <context:property-placeholder location="classpath:jdbc.properties"/>
  • 使用${}读取加载的属性值

     <property name="driverClassName" value="${jdbc.driver}"/>
  • 加载方式

    • 不加载系统属性

       <context:property-placeholder location="classpath:jdbc.properties" system-properties-mode="NEVER"/>
    • 加载多个properties文件

       <context:property-placeholder location="jdbc.properties,msg.properties"/>
    • 加载所有properties文件

       <context:property-placeholder location="*.properties"/>
    • 加载properties文件标准格式

       <context:property-placeholder location="classpath:*.properties"/>
    • 从类路径或jar包中搜索并加载properties文件

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

3. 容器

创建容器

  • 方式1:类路径加载配置文件(常用)

    ApplicationContext context = new ClassPathXmlApplicationContext("applicationContext.xml");
  • 方式2:文件路径加载配置文件

    ApplicationContext context = new FileSystemXmlApplicationContext("D:\\applicationContext.xml");
  • 加载多个配置文件

    ApplicationContext ctx = new ClassPathXmlApplicationContext("bean1.xml","bean2.xml");

获取bean

  • 方式1:使用bean名称获取

    BookDao bookDao = (BookDao) context.getBean("bookDao");
  • 方式2:使用bean名称获取并指定类型

    BookDao bookDao = context.getBean("bookDao",BookDao.class);
  • 方式3:使用bean类型获取

    BookDao bookDao = context.getBean(BookDao.class);

核心容器总结

bean相关

image-20220919144903827

依赖注入相关

image-20220919144952137

4. 注解开发

4.1 注解开发定义bean

  • 使用@Component定义bean

    image-20220919150945625

  • 核心配置文件中通过组件扫描加载bean

    image-20220919151027837

4.2 纯注解开发模式

  • Spring3.0开启了纯注解开发模式,使用Java类替代配置文件,开启了Spring快速开发赛道

  • Java类代替了Spring核心配置文件

    image-20220919154145935

  • @Configuration注解用于设定当前类为配置类

  • @ComponentScan注解用于设定扫描路径,此注解只能添加一次,多个数据请用数组格式

    image-20220919154333547

  • 读取Spring核心配置文件初始化容器对象切换为读取Java配置类初始化容器对象

    image-20220919160943652

4.3 注解开发bean作用范围与生命周期管理

Bean作用范围

  • 使用@Scpoe定义bean作用范围(prototype:非单例模式 singleton:单例(默认))

    image-20220919160426192

  • 使用@PostConstruct、@PreDestroy定义bean生命周期

    image-20220919160713956

4.4 注解开发依赖注入

自动装配

  • 使用@Autowired注解开启自动装配模式(按类型)

    image-20220919163225917

  • 使用@Qualifier注解开启指定名称装配bean

    image-20220919163628146

  • 使用@Value实现简单类型注入

    image-20220919163913764

  • 注意:

    • 自动装配基于反射设计创建对象并暴力反射对应属性为私有属性初始化数据,因此无需提供setter方法

    • 自动装配建议使用无参构造方法创建对象(默认),如果不提供对应构造方法,请提供唯一的构造方法

    • @Qualifier注解无法单独使用,必须配合@Autowired注解使用

加载properties文件

  • 使用@PropertySource注解加载properties文件

    image-20220919164555214

  • 注意:路径仅支持单一文件配置,多文件使用数组格式配置,不允许使用通配符*

4.5 注解开发管理第三方bean

  • 使用@Bean配置第三方bean

    image-20220919170701676

  • 将独立的配置类加入核心配置

    • 方式1:导入式(建议使用)

      • image-20220919170841271

      • 使用@Import注解手动加入配置类到核心配置,此注解只能添加一次,多个数据请用数组格式

        image-20220919171147115

    • 方式2:扫描式

      • image-20220919171317227

      • 使用@ComponentScan注解扫描配置类所在的包,加载对应的配置类信息

        image-20220919171423228

4.6 注解开发实现为第三方bean注入资源

  • 简单类型依赖注入

    image-20220919182942438

  • 引用类型依赖注入

    image-20220919183019011

  • 引用类型注入只需要为bean定义方法设置形参即可,容器会根据类型自动装配对象

XML配置比对注解配置

image-20220919183647944

5. Spring整合mybatis

  • SqlSessionFactoryBean

image-20220919195708986

  • MapperScannerConfigurer

image-20220919195749072

6. Spring整合JUnit

  • 使用Spring整合Junit专用的类加载器

    • @RunWith(SpringJUnit4ClassRunner.class):设置类运行器

    • @ContextConfiguration():设置当前项目的Spring配置类

     

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.luyixian.cn/news_show_10266.aspx

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

相关文章

【牛客刷题】每日一练—ArrayList的实例强化

✨hello&#xff0c;进来的小伙伴们&#xff0c;你们好呐&#xff01;✨ &#x1f362;&#x1f362;系列专栏&#xff1a;【牛客刷题】 &#x1f32f;&#x1f32f;作者简介&#xff1a;一名大三在读的科班Java编程小白&#xff0c;星夜漫长&#xff0c;你我同行! &#x1f37…

383.赎金信

题目来源&#xff1a; 力扣https://leetcode.cn/problems/ransom-note/题目简介&#xff1a; 判断字符串a中的字母能不能构成字符串b&#xff0c;能的话就返回true&#xff0c;不能就返回false&#xff0c;字符串a里的字母每个都只能用一次&#xff0c;不能重复使用 思路&am…

Endpoint Central的IT资产管理(ITAM)

什么是 IT 资产管理 (ITAM) IT 资产管理 (ITAM) 是识别、发现、采购、管理、监控和处置企业网络中存在的所有公司拥有的数据、设备和软件元素的过程。ITAM 工具可确保集中查看网络中存在的所有资产以及软件和硬件详细信息。拥有完整的 ITAM 流程可以使您能够就收购新资产做出有…

笨方法学Python

前言 这本书指导你在Python中通过练习和记忆等技巧慢慢建设和建立技能,然后应用它们解决越来越困难的问题。在这本书的最后&#xff0c;你需要拥有必要的工具开始进行更多复杂程序的学习。我喜欢告诉大家&#xff0c;我的书带给你们“编程黑带”。意思是说你知道的基础知识足够…

『华强买瓜』奇袭好莱坞!Jupyter也能创建可交互仪表板啦!超全面的英语论文写作套路;神经辐射场NeRF工具包;前沿论文 | ShowMeAI资讯日报

&#x1f440;日报合辑 | &#x1f4c6;电子月刊 | &#x1f514;公众号下载资料 | &#x1f369;韩信子 &#x1f4e2; 好莱坞全明星版『华强买瓜』&#xff1a;你这 AI 保熟吗&#xff1f; https://weibo.com/2395607675/M61L994kN 一起来看看 AI 最近又搞出了什么好玩意儿…

gradle缓存路径

gradle缓存路径网上有很多配置教程,但是实际使用过程中发现不是很准确,验证下缓存配置 1.个人认为最优雅 在gradle的安装目录&#xff0c;编辑bin文件夹下的gradle文件&#xff0c;然后找到如下语句: # Add default JVM options here. You can also use JAVA_OPTS and GRADLE…

eplan里面导入3D图

1.第一步,打开RICAD-3D软件 2.点击RICAD-3D 3.进入页名后,①首先点击RITTAL机柜系统-②SMall enclosours-③选中双击compact enclosures-AE 4.双击后出现这个页面,在开放式列表中型号选择1050.500的, 5.点击STEP 3D后面的向下箭头,点击3D系统中性格式,点击STEP3d 6.这边…

初识SpringBoot

文章目录一、SpringBoot特点优点缺点二、时代背景1、微服务2、分布式分布式的困难分布式解决3、云原生上云的困难三、快速上手1、导入依赖2、创建架构编写业务MainApplication作为主程序应用controller作为业务层3、修改端口号一、SpringBoot特点 优点 创建独立Spring应用内嵌…

WoShop多商户直播短视频APP小程序商城全开源无加密商城源码

WoShop多商户直播短视频APP小程序商城全开源无加密商城源码基于现场直播购物模式&#xff0c;用户可以“边看边买”现场直播商城平台&#xff0c;全终端支持&#xff0c;统一管理后台&#xff0c;传播更强&#xff0c;管理更方便&#xff0c;支持私有化配置&#xff0c;提供系统…

牛视系统源码定制开发come here,抖音矩阵系统。

Seo是Search Engine Optimization的缩写&#xff0c;译成英文的意思是‘浏览器强化’&#xff0c;可能有很多爸爸妈妈就会问了&#xff1a;抖音什么时候沦为了浏览器&#xff1f;他不是一种SNS影视娱乐应用软件吗&#xff1f;假如您还这么想&#xff0c;而且就行不通了&#xf…

5分钟,带你看完24岁60W年薪架构师的简历,上面竟然写着精通JVM

前言 近期&#xff0c;看了一份24岁60W年薪架构师简历&#xff0c;上面写着他的求职意向所掌握的技能....... 所掌握的技能大部分写的都是精通&#xff01;我不禁想问&#xff0c;大佬都这么强吗&#xff1f;你敢在简历上把所有的技能都写精通吗&#xff1f; 简历 下面来带…

mysql事务详解

目录 一、MySQL事务的概念 二、MySQL事务的特点 原子性 一致性 隔离性 事务之间的相互影响 三、MySQL及事务隔离级别 查询全局事务隔离级别 查询会话事务隔离级别 设置全局事务隔离级别 事务控制语句 测试提交事务 测试回滚事务 用别的用户查看这个表&#xff0c;数据已经…

使用容器运行nginx及docker命令介绍

目录 一.使用docker run命令运行Nginx应用 1.观察下载容器镜像过程 查看容器状态 2.访问容器中的nginx服务 1.确认容器的ip地址 2.容器的网络说明 3.访问容器 二.docker命令 1.帮助命令 2.docker run 3.docker ps 4.docker inspect 5.docker exec 6.docker attach 7…

算法分析基础

1 前言 算法分析主要就是从计算资源消耗的角度来评判和比较算法&#xff0c;更高效利用计算资源&#xff0c;或者更少占用计算资源的算法&#xff0c;就是好算法。计算资源主要分为两种&#xff0c;一种是算法解决问题过程中需要的存储空间或内存&#xff0c;另一种是算法的执行…

JRUY-G3交流三相电压继电器

系列型号 JRUY-E3A/D、JRUY-E3B/D、 JRUY-E4A/D、JRUY-E4B/D、 JRUY-E3A/J、JRUY-E3B/J、 JRUY-E4A/J、JRUY-E4B/J、 JRUY-TE3A/D、JRUY-TE3B/D、 JRUY-TE4A/D、JRUY-TE4B/D、 JRUY-TE3A/J、JRUY-TE3B/J、 JRUY-TE4A/J、JRUY-TE4B/J 用途 JRUY-G3数字交流三相电压继电器​ 用于…

如何在一分钟了解jwt

目录 一.session的存储机制 二.jwt的工作原理 三.JWT是什么&#xff1f; 四.为什么使用JWT 五.jwt的运行机制/原理&#xff1a;**** 六.jwt工具类介绍&#xff0c;三种场景 七.jwt与vuex配合在SPA项目中的应用 一.session的存储机制 二.jwt的工作原理 1.原理图&#xf…

现代检测技术--概论

检测技术导论 文章目录检测技术导论测量与检测重要掌握测量方法P3偏差法测量零位法测量微差法测量检测系统的组成补偿结构差动结构测量与检测 测量过程三要素&#xff1a; 测量单位测量方法测量装置 检测是更为意义的测量&#xff0c;其包含测量和信息获取。 检测过程包括测…

Map集合概述和一般使用

1.Map集合 1.1Map集合概述和特点【理解】 Map集合概述 Map代表具有映射关系&#xff08;key-value&#xff09;的集合。 interface Map<K,V> K&#xff1a;键的类型&#xff1b;V&#xff1a;值的类型Map集合的特点 双列集合,一个键对应一个值 键不可以重复,值可以重…

PDF怎么转换成Word?这几个方法可以试试

PDF怎么转换成Word&#xff1f;PDF跟Word都是经常遇到的存储文本信息的文件工具。PDF跟图片的性质有点接近&#xff0c;不容易受外界环境的影响&#xff0c;能在不同的显示器和操作系统中显示出同样的排版效果&#xff0c;但PDF不如Word方便编辑。如果我们想把PDF转成Word该怎么…

maven项目下tomcat使用

1.添加插件<plugin><groupId>org.apache.tomcat.maven</groupId><artifactId>tomcat7-maven-plugin</artifactId><version>2.2</version><configuration><port>8080</port><path>/test</path><uri…