IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 开发测试 -> Spring5-完全注解开发【之】Spring5介绍、实现IOC、单元测试 -> 正文阅读

[开发测试]Spring5-完全注解开发【之】Spring5介绍、实现IOC、单元测试

1.Spring5框架概述

  • Spring是一个开源框架、是一个轻量级容器

  • 特点

    • Spring 框架方便组合其他技术,是Java生态的重要支撑者
    • 管理Bean的生命周期,支持依赖注入,简化开发
    • 支持面向切面编程 ,进一步解耦
    • 方便和其他框架进行整合,如:内置整合 junit , 方便程序测试;支持 MyBatis 等数据库操作框架
    • 支持 声明式事务 和 编程式事务
    • 极大程度,降低后台服务开发的代码量 和 开发难度
  • Spring 框架是模块化的,存在 20 多个不同的模块
    • 核心模块: context、core (IOC)、AOP、ORM、DAO、web、web mvc、tx
    • 一些模块是相互依赖的。例如 spring-context 依赖于 spring-beans,而 spring-beans 又依赖于 spring-core。
spring-aop      spring-context-indexer  spring-instrument  spring-orm    spring-web
spring-aspects  spring-context-support  spring-jcl         spring-oxm    spring-webflux
spring-beans    spring-core             spring-jdbc        spring-r2dbc  spring-webmvc
spring-context  spring-expression       spring-jms         spring-test   spring-websocket
spring-tx  		spring-messaging   

2.IOC实现(将类交由Spring管理)

2.1.引入依赖(spring-context)

  • spring-context (core、bean、aop、jcl、expression)
       <dependency>
           <groupId>org.springframework</groupId>
           <artifactId>spring-context</artifactId>
           <version>5.3.16</version>
       </dependency>

在这里插入图片描述

2.2.声明注解(@Service、@Component、@Repository、@Controller)

  • Spring 提供了4个注解,用于标识将类交由Spring管理
  • 但是四个注解的最终实现结果是一致的,只是官方定义的各自的使用场景
  • @Service:将当前类认为是一个服务类,并交由Spring管理。
  • @Component:将当前类认为是一个组件类,并交由Spring管理。
  • @Repository:将当前类认为是一个数据类,并交由Spring管理。
  • @Controller:将当前类认为是一个控制器类,并交由Spring管理。
  • 如图:UserController类 和 UserService,理论上可以使用4个注解中的任意一种
  • 但是为了规范,还是分别使用 @Controller 和 @Service ,这样更容易阅读
    在这里插入图片描述
    在这里插入图片描述

2.3.依赖注入(@Autowired、@Qualifier)

  • 使用 @Autowired、@Qualifier 实现依赖对象自动注入
  • @Autowired:只存在一种类型时,通过类型自动注入
    在这里插入图片描述
    在这里插入图片描述
  • @Autowired + @Qualifier:一个接口存在多种实现时,注入接口实例对象时要指定名称注入
  • 类默认名称采用驼峰命名法,可以主动设置命名
    在这里插入图片描述
    在这里插入图片描述

2.4.声明 Bean 实例(@Bean、@Configuration)

  • @Configuration:声明当前类为,配置类,并交由Spring管理
  • @Bean : 标记在方法上,将返回对象交由Spring管理
    在这里插入图片描述

2.5.包扫描,注解生效(@ComponentScan)

  • 想要注解生效,必须在启动类上声明,包扫描路径,默认为当前路径下全部包
  • @ComponentScan :定义扫描位置,默认为当前路径下全部包
    在这里插入图片描述

3.单元测试

3.1.引入依赖

  • spring-test、junit5
  	   <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-test</artifactId>
            <version>5.3.16</version>
        </dependency>

      <dependency>
      		<groupId>org.junit.jupiter</groupId>
      		<artifactId>junit-jupiter-api</artifactId>
            <version>5.5.2</version>
      	    <scope>compile</scope>
      </dependency>

在这里插入图片描述

3.2.测试注入情况

  • 测试声明与依赖注入
    在这里插入图片描述

4.完整源码

《目录:Spring5-完全注解开发》

《目录:从零手写Tomcat》

《幕》

  • 留白 —<老吉>
  • ~ 今 ~ ? ~ ?????????? ?????????? ???????
  开发测试 最新文章
pytest系列——allure之生成测试报告(Wind
某大厂软件测试岗一面笔试题+二面问答题面试
iperf 学习笔记
关于Python中使用selenium八大定位方法
【软件测试】为什么提升不了?8年测试总结再
软件测试复习
PHP笔记-Smarty模板引擎的使用
C++Test使用入门
【Java】单元测试
Net core 3.x 获取客户端地址
上一篇文章      下一篇文章      查看所有文章
加:2022-04-24 09:45:10  更:2022-04-24 09:45:14 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年5日历 -2024/5/19 3:30:30-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码