目录
正文
需要添加maven依赖
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-core</artifactId>
<!--这个jar文件包含Spring框架基本的核心工具类,Spring其它组件要都要使用到这个包里的类,是其它组件的基本核心 -->
<version>4.1.0.RELEASE</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId>
<!--这个jar文件为Spring核心提供了大量扩展 -->
<version>4.1.0.RELEASE</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-test</artifactId>
<!--对JUNIT等测试框架的简单封装 -->
<version>4.1.0.RELEASE</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-tx</artifactId>
<!--为JDBC、Hibernate、JDO、JPA等提供的一致的声明式和编程式事务管理。-->
<version>4.1.0.RELEASE</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-beans</artifactId>
<!--这个jar文件是所有应用都要用到的,它包含访问配置文件、创建和管理bean以及进行(IoC/DI)操作相关的所有类 -->
<version>4.1.0.RELEASE</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-jdbc</artifactId>
<!--这个jar文件包含对Spring对JDBC数据访问进行封装的所有类。 -->
<version>4.1.0.RELEASE</version>
</dependency>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.12</version>
</dependency>
DemoBean.java
package entity;
import java.io.Serializable;
public class DemoBean implements Serializable {
private static final long serialVersionUID = 1L;
String demo;
public DemoBean(){
}
public void init() {
System.out.println("init");
}
public void destroy() {
System.out.println("destroy");
}
public String getDemo() {
return demo;
}
public void setDemo(String demo) {
this.demo = demo;
}
@Override
public String toString() {
return "DemoBean [demo=" + demo + "]";
}
}
XML配置
applicationContext.xml
<bean id="demo" class="entity.DemoBean" init-method="init"
destroy-method="destroy" scope="prototype"></bean>
XmlTest.java
public class XmlTest {
ClassPathXmlApplicationContext ctx;
@Before
public void init() {
ctx = new ClassPathXmlApplicationContext("spring-mvc.xml");
}
@After
public void destroy() {
ctx.close();
}
@Test
public void test01() {
DemoBean db = ctx.getBean("demo",DemoBean.class);
System.out.println(db);
}
}
Java Config 配置
配置类
@Configuration
public class JavaConfig {
@Bean(name= {"ConfigBean"})
public JavaConfigBean getBean() {
return new JavaConfigBean();
}
}
测试类
public void test01() {
AnnotationConfigApplicationContext context = new AnnotationConfigApplicationContext(JavaConfigBean.class);
JavaConfigBean bean = context.getBean(JavaConfigBean.class);
bean.desc();
context.close();
}
隐式地bean发现机制和自动装配(Annotation 配置)
配置类添加注解扫描
@Configuration
@ComponentScan(basePackages="entity")//使用String是类型不安全的,建议用class
//@ComponentScan(basePackageClasses= {JavaConfigBean.class}) //默认会扫描与配置类相同的包
public class JavaConfig {
}
测试类(使用Spring test包的测试)
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(classes=JavaConfig.class)
//JavaConfig中使用xml的配置文件
//@ImportResource(locations={"classpath:applicationContext.xml"})
public class AnnotationTest {
@Autowired
AnnotationBean annotationBean ;//测试注解配置
@Autowired
JavaConfigBean javaConfigBean;//测试java config 配置
@Test
public void test01() {
assertNotNull(annotationBean);
annotationBean.desc();
}
@Test
public void test02() {
javaConfigBean.desc();
}
}
在Java配置中使用其他配置文件
导入xml配置文件
@ImportResource(locations={"classpath:applicationContext.xml"})
导入Java配置文件
@Import(OtherConfig.class)
在xml中使用其他配置
导入xml配置文件
<import resource="other.xml"/>
导入Java配置文件
<bean class="config.JavaConfig"/>