Spring5+Junit4

一、 添加Jar包
1、 hamcrest-all-1.3.jar :是一个为了测试为目的,且能组合成灵活表达式的匹配器类库,是Junit4的所 依赖的Jar包
2、 junit-4.12.jar :Junit4的Jar包
二、 编写一个测试类com.gx.test.Demo
package com.gx.test;
import com.gx.model.User;
import org.junit.Before;
import org.junit.Test;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
public class Demo {
private ApplicationContext context=null;
@Before
public void getApplicationContext(){
context = new ClassPathXmlApplicationContext(“applicationContext.xml”); }
@Test
public void testDemo(){
User user1 = (User) context.getBean(“user01”);
System.out.println(user1);
}
}
2、运行测试“testDemo”,①在testDemo方法内右键“Run testDemo()”;或者②点击testDemo方法前 的绿色三角箭头“Run Test”
三、 Junit4常用注解
@Test 测试方法,在这里可以测试期望异常和超时时间
@Before 初始化方法,会在@Test执行前执行
@After 释放资源,会在@Test执行后执行
@BeforeClass 所有测试执行前执行,只执行一次,且必须为 static void
@AfterClass 所有测试执行后执行,只执行一次,且必须为static void
@Ignore 忽略的测试方法
2、执行顺序: 一个JUnit 4 的单元测试用例执行顺序为:@BeforeClass –> @Before –> @Test –> @After –> @AfterClass 每一个测试方法的调用顺序为:@Before –> @Test –> @After
四、 Spring Bean的配置方式
1、 作为 Spring 核心机制的依赖注入,改变了传统的编程习惯,对组件的实例化不再由应用程序完成,转而 交由 Spring 容器完成,在需要时注入应用程序中,从而对组件之间依赖关系进行了解耦。这一切都离不 开 Spring 配置文件中使用的 元素。
2、 Spring 容器可以被看作一个大工厂,而 Spring 容器中的 Bean 就相当于该工厂的产品。如果希望 这个大工厂能够生产和管理 Bean,这时则需要告诉容器需要哪些 Bean,以及需要以何种方式将这些 Bean 装配到一起
3、 Id:是一个 Bean 的唯一标识符,Spring 容器对 Bean 的配置和管理都通过该属性完 成
Name:Spring 容器同样可以通过此属性对容器中的 Bean 进行配置和管理,name 属性 中可以为 Bean 指定多个名称,每个名称之间用逗号或分号隔开
class:该属性指定了 Bean 的具体实现类,它必须是一个完整的类名,使用类的全限定名
scope:用于设定 Bean 实例的作用域,其属性值有 singleton(单例)、prototype(原 型)、request、session 和 global Session。其默认值是singleton
constructor-arg:元素的子元素,可以使用此元素传入构造参数进行实例化。该元素的 index 属性指定构造参数的序号(从 0 开始),type 属性指定构造参数的类型 property:元素的子元素,用于调用 Bean 实例中的 Set 方法完成属性赋值,从而完 成依赖注入。该元素的 name 属性指定 Bean 实例中的相应属性名
ref:和 等元素的子元素索引,该元素中的 bean 属性用于指定对 Bean 工厂中某个 Bean 实例的引用
value:和 等元素的子元素,用于直接指定一个常量值
list:用于封装 List 或数组类型的依赖注入
set:用于封装 Set 类型属性的依赖注入
map:用于封装 Map 类型属性的依赖注入
entry:元素的子元素,用于设置一个键值对。其 key 属性指定字符串类型的键值,ref 或 value 子元素指定其值
4、 Spring bean中id和name的区别
最近在开发项目的时候发现spring的BeanFactory创建bean的时候有时候有2种不同的配置,即 与 ,下面 一起分析一下这2种配置的区别:
1、 命名规范。id属性命名必须满足xml命名规范,而name属性命名可以不用遵守。不论是id属性还是 name属性在创建bean的时候不遵守命名规范会抛出异常。
2、 唯一性。id属性命名必须严格遵守唯一原则,否则会报错;name属性命名可以不必遵守唯一原 则,在创建实例对象的时候后面一个bean会覆盖前面一个bean。
3、 开发的时候尽量都使用id属性配置bean,严格的检测能让程序更加良好
五、 基于Java注解的配置方式
1、 在 Spring 中,尽管使用 XML 配置文件可以实现 Bean 的装配工作,但如果应用中 Bean 的数量较多, 会导致 XML 配置文件过于臃肿,从而给维护和升级带来一定的困难
2、 Java 从 JDK 5.0 以后,提供了 Annotation(注解)功能,Spring 也提供了对 Annotation 技术的全面支 持。
3、 @Component 可以使用此注解描述 Spring 中的 Bean,但它是一个泛化的概念,仅仅表示一个组件(Bean), 并且可以作用在任何层次。使用时只需将该注解标注在相应类上即可,默认情况下生成的id名称为类 名称的首字母小写。
4、 @Repository 用于将数据访问层(DAO层)的类标识为 Spring 中的 Bean,其功能与 @Component 相同。
5、 @Service 通常作用在业务层(Service 层),用于将业务层的类标识为 Spring 中的 Bean,其功能与 @Component 相同。
6、 @Controller 通常作用在控制层,用于将控制层的类标识为 Spring 中的 Bean,其功能与 @Component 相同。
7、 @Autowired 默认按照 Bean 的类型进行装配。 用于对 Bean 的属性变量、属性的 Set 方法及构造函数进行标注,配合对应的注解处理器完成 Bean 的自动配置工作。
8、 @Resource 其作用与 Autowired 一样。 其区别在于 @Autowired 默认按照 Bean 类型装配,而 @Resource 默认按照 Bean 实例名称进行 装配。
@Resource 中有两个重要属性:name 和 type。 Spring 将 name 属性解析为 Bean 实例名称,type 属性解析为 Bean 实例类型。如果指定 name 属性,则按实例名称进行装配;如果指定 type 属性,则按 Bean 类型进行装配。 如果都不指定,则先按 Bean 实例名称装配,如果不能匹配,则再按照 Bean 类型进行装配;如果 都无法匹配,则抛出 NoSuchBeanDefinitionException 异常。
9、 @Qualifier 与 @Autowired 注解配合使用,会将默认的按 Bean 类型装配修改为按 Bean 的实例名称装配, Bean 的实例名称由 @Qualifier 注解的参数指定。
10、 @value 给属性赋值

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值