首页 > 其他分享 >Spring学习的第二天

Spring学习的第二天

时间:2022-09-19 20:33:35浏览次数:72  
标签:Spring bean 学习 第二天 使用 注解 properties 加载

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配置类

     

标签:Spring,bean,学习,第二天,使用,注解,properties,加载
From: https://www.cnblogs.com/bkylxm/p/16708966.html

相关文章

  • 在科学课程中提高学生的学习能力 ——基于游戏的协作学习方法
    在科学课程中提高学生的学习能力——基于游戏的协作学习模式(Acollaborativegame-basedlearningapproachtoimprovingstudents’learningperformanceinsciencec......
  • Spring基础 02 | JdbcTemplate
    JdbcTemplateSpring对Jdbc的Api简单封装开发步骤1.导入Spring-jdbc、spring-tx坐标2.创建数据库表和实例3.创建jdbcTemplate对象4.执行数据库操作导入坐标<de......
  • request post学习
    requestpost学习importjsonimportrequestsimportbase64url="https://XXX1:8065/vxxxm_reptile/VehiclePositionTrajectoryServlet"headers={"keyId":"4xxxx......
  • [轻量化网络]MobileNet V1学习笔记
    MobileNetV1是谷歌2017年提出的轻量化卷积神经网络,用于在移动端、边缘终端设备上进行实时边缘计算和人工智能推理部署。使用深度可分离卷积DepthwiseSeparableConvolut......
  • Spring注解@Qualifier的详细用法
      悟纤:师傅,这一节,看着比较简单呢?师傅:嗯嗯,这一节就是和大家分享一些一些基础的知识,基础功不打扎实一点的话,源码和高级一些的功能在实现的时候就没有思路了。  ......
  • springboot+Flink 接收、处理数据20220919
     1、pom.xml<dependencies><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot......
  • 自学周记之static的学习
          在Java的学习过程中,我们为了让自己的代码更加简洁美观或者为了在重复部分一劳永逸,定义方法对于我们总是必不可少的。而在定义方法时不仅要标注返回值类型,还要......
  • k8s系列学习
    一、k8s介绍  一个k8s集群有master和node节点组成,每个节点需要安装对应的组件master节点:ApiServer:资源操作的唯一入口,接收用户输入的命令,提供认证、授权、API注......
  • JAVA学习-四则运算的优化
    在这一节中要对上次写的用random函数的应用生成的四则运算程序进行优化,要求是需要实现在线答题,并且可以给出题目的答案讲错题存起来,可以进行错题重做,还要给出错题率以及相......
  • 新手学习Java的好习惯分享
    1、爱好这个是动力,如果你不爱Java,不爱计算机,而是喜爱游戏,娱乐或者其他的,你不适合做程序员。如果你能在电脑前,一坐就是4-5个小时,你能为了学习而阅读英文的资料......