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)

相关推荐
吃饱了得干活4 小时前
Spring Cloud Gateway 微服务网关:路由、断言、过滤器
java·spring cloud
lwx572806 小时前
探秘InnoDB:搞懂它的内存、线程、磁盘与日志刷盘策略
java·后端
Flynt7 小时前
从Spring Boot 4.0升到4.1,我在Maven和gRPC上栽了跟头
java·spring boot·后端
plainGeekDev8 小时前
Activity 间传值 → Navigation 参数
android·java·kotlin
plainGeekDev9 小时前
onActivityResult → ActivityResult API
android·java·kotlin
Sunia9 小时前
《AgentX 专栏》10-生产部署:3台2C4G云服务器把企业级Agent真正跑起来的完整方案
java·架构
ZhengEnCi10 小时前
J7A-高级Java工程师面试三道灵魂拷问-深度广度与工程素养的终极检验
java·后端
狼爷1 天前
吃透 Java Function 接口,搞定 99% 的 Stream 场景
java·函数式编程
祎雪双十Gy1 天前
从 DataX 的配置加载说起:我用 FastJson2 做了一个轻量级动态配置管理库
java·后端
小锋java12341 天前
分享一套锋哥原创的SpringBoot4+Vue3宠物领养网站系统
java