一: JavaBean(概念介绍)
是Java中的一种特殊类,可以将多个对象封装到一个对象(bean),提供无参构造器,提供getter方法和setter方法访问对象属性。
Bean:代表Java中的可重用软件组件
传统的bean,使用java关键字进行实例化,不使用时虚拟机进行垃圾回收(和普通class文件建立对象的过程完全一致)
animalbean bean=new animalbean();
二:SpringBean(由Spring容器提供Bean的使用)
Spring的自动装配(Autowired)
编写配置文件,开启组件扫描,发现带有注解的类
常用注解:@Component,@Service,@Controller
<context:component-scan base-package="bean"/>//注明Spring扫描组件所处位置的包名,默认扫描配置文件所处包
Junit加载Spring配置文件完成Context初始化,然后从Context中取出bean完成测试
Method1:@RunWith(SpringJUnit4ClassRunner.class) 表明测试用例使用SpringJUnit4ClassRunner类使用
@ContextConfiguration(locations = { “classpath:applicationContext.xml” })//读取的配置文件位置
Method2: @RunWith(Suite.class) Suite是Junit自带的组件,可把多个测试类做为一个套件一起测试
@Suite.SuiteClasses({ TestA.class, TestB.class, /Any test class you want to run/})
应用举例:使用Java装配方式(写一个Java类代替xml文件)
import bean.spring_example;
import config.Spring_config;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(classes = Spring_config.class)
public class spring_test {
@Autowired
spring_example test;
@Test
public void print(){
test.test_print();
}
}
import bean.spring_example;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
@Configuration
//声明为配置类,作用和xml等同
public class Spring_config {
//创建并返回需要的实例,方法名作为bean的名称
@Bean
public spring_example test(){
return new spring_example();
}
}
import bean.spring_example;
import config.Spring_config;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(classes = Spring_config.class)
public class spring_test {
@Autowired
spring_example test;
@Test
public void print(){
test.test_print();
}
}