Spring框架(三)ioc注解与junit单元测试整合

目录

六、IOC注解

半注解

常用注解

纯注解

常用注解

七、整合junit单元测试


六、IOC注解

半注解

1、在需要管理的类上添加@Component注解

编写配置文件,重点是开启注解扫描。

java 复制代码
/**
 * <bean id="us" class="cn.tx.demo2.UserServiceImpl" />
 */
// 组件,作用:把当前类使用IOC容器进行管理,如果没有指定名称,默认使用类名,首字母是小写。userServiceImpl。或者自己指定名称
@Component(value = "us")
public class UserServiceImpl implements UserService {
    @Override
    public void hello() {
       System.out.println("Hello IOC注解...");
    }
}
XML 复制代码
<!--开启注解扫描
<context:component-scan
base-package="cn.tx.demo2" />
-->    
​<!--开启注解扫描cn.tx.所有的包中的所有的类-->
<context:component-scan base-package="cn.tx" />

常用注解

bean管理类常用的4个注解(作用相同,推荐使用在不同分层上)

​ @Component 普通的类

​ @Controller 表现层

​ @Service 业务层

​ @Repository 持久层

依赖注入常用的注解

​ @Value 用于注入普通类型(String,int,double等类型)

​ @Autowired 默认按类型进行自动装配(引用类型)

​ @Qualifier 和@Autowired一起使用,强制使用名称注入

​ @Resource Java提供的注解,也被支持。使用name属性,按名称注入

对象生命周期(作用范围)注解

​ @Scope 生命周期注解,取值singleton(默认值,单实例)和prototype(多例)

初始化方法和销毁方法注解(了解)

​ @PostConstruct 相当于init-method

​ @PreDestroy 相当于destroy-method

纯注解

编写配置类,替换掉applicationContext.xml配置文件

java 复制代码
// 声明当前类是配置类
@Configuration
// 扫描指定的包结构
@ComponentScan(value = "cn.tx.demo4")
public class SpringConfig {
}

常用注解

常用的注解总结

@Configuration 声明是配置类

@ComponentScan 扫描具体包结构的

@Import注解 Spring的配置文件可以分成多个配置的,编写多个配置类。用于导入其他配置类

@Bean注解 只能写在方法上,表明使用此方法创建一个对象,对象创建完成保存到IOC容器中

七、整合junit单元测试

每次进行单元测试的时候,都需要编写创建工厂,加载配置文件等代码,比较繁琐。Spring提供了整合Junit单元测试的技术,可以简化测试开发。

必须先有Junit单元测试的环境,也就是说已经导入Junit单元测试的jar包。咱们已经导入过了。使用的是4.12版本,再导入spring-test的坐标依赖

举例:

创建类user,编写配置文件,user交给spring

在测试时只需添加

@RunWith(value = SpringJUnit4ClassRunner.class) // 运行单元测试

@ContextConfiguration(value="classpath:applicationContext_test.xml")

// 加载类路径下的配置文件

java 复制代码
@RunWith(value = SpringJUnit4ClassRunner.class)     // 运行单元测试
@ContextConfiguration(value = "classpath:applicationContext_test.xml")
  // 加载类路径下的配置文件
public class Demo5 {
    // 测试哪一个对象,把该对象注入进来,在测试环境下,可以使用注解的方式注入测试的对象
    // 按类型自动注入
    @Autowired
    private User user;
    
    @Test
    public void run1(){
        // 创建工厂,加载配置文件......
        // 调用对象的方法
        user.sayHello();
    }
}

全注解的方式就是编写配置类

@RunWith(SpringJUnit4ClassRunner.class)

// 加载配置类

@ContextConfiguration(classes = SpringConfig6.class)

相关推荐
青春易逝丶19 小时前
术语缩写
java
ideal-cs19 小时前
总结:Nginx配置文件案例说明
java·运维·nginx·nginx配置文件
无尽的沉默19 小时前
Thymeleaf 基本语法和表达式
java·开发语言
Coder_Boy_19 小时前
Java后端核心技术体系全解析(个人总结)
java·开发语言·spring boot·分布式·spring cloud·中间件
南部余额20 小时前
函数式接口 Lambda 表达式好搭档:Predicate、Function、Consumer、Supplier
java·开发语言·consumer·lambda·function·predicate·supplier
Java后端的Ai之路20 小时前
【JDK】-JDK 17 新特性整理(比较全)
java·开发语言·后端·jdk17
小小小米粒20 小时前
Spring Boot Starter ,不止是 “打包好配置的工具类包”
java·开发语言
用户83071968408220 小时前
告别冗余!Spring Boot Web 入参转换 6 种玩法,@InitBinder 可以退休了
java·spring boot
树码小子20 小时前
统一功能处理(1)拦截器
spring·拦截器
Desirediscipline20 小时前
#include<limits>#include <string>#include <sstream>#include <iomanip>
java·开发语言·前端·javascript·算法