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)

相关推荐
计算机学姐41 分钟前
基于SpringBoot的高校竞赛管理系统
java·spring boot·后端·spring·信息可视化·tomcat·mybatis
AnalogElectronic43 分钟前
普通数据源和druid数据源区别以及druid参数详解
java
東雪木1 小时前
Java学习——泛型基础:泛型的核心作用、泛型类 / 方法 / 接口的定义
java·学习·java面试
一叶飘零_sweeeet1 小时前
ConcurrentHashMap 深度解析:从 JDK7 到 JDK8 的演进与并发安全保障
java·并发编程
三原1 小时前
超级好用的三原后台管理v1.0.0发布🎉(Vue3 + Ant Design Vue + Java Spring Boot )附源码
java·vue.js·开源
文慧的科技江湖1 小时前
光储充协同的终极闭环:用SpringCloud微服务打造“发-储-充-用“智能能源网络 - 慧知开源充电桩管理平台
java·开发语言·spring cloud·微服务·能源·充电桩开源平台·慧知重卡开源充电桩平台
東雪木1 小时前
Java学习——内部类(成员内部类、静态内部类、局部内部类、匿名内部类)的用法与底层实现
java·开发语言·学习·java面试
满满和米兜1 小时前
【Java基础】-I/O-字符流
java·开发语言·python
huanmieyaoseng10031 小时前
SpringBoot使用Redis缓存
java·spring boot·后端
小小仙。1 小时前
IT自学第三十八天
java·开发语言