Spring简介以及简单使用
由于最近需要在组内进行一次关于Spring的分享,因此从本周连续几周,开始从源码的粒度深入分析下Spring的原理。虽然网上有很多类似的文章,但是还是需要自己梳理一遍才能更加有助于理解。那么既然是再写一遍,那就试图写的更加清楚明白些。
Spring框架中的每个模块都可以单独存在,或联合存在。各个组件的功能简介如下:
在本系列的博客中,我将主要介绍Spring核心框架中的Ioc和Aop原理。这几篇博客中我将以最新的版的Spring进行实验以及源码的分析研究,并辅助以一些自行的代码设计对Spring的Ioc以及Aop原理展开分析。
我们使用maven构建一个基础的Spring应用
1、填写pom.xml:
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<scope>test</scope>
<version>4.10</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId>
<version>4.3.13.RELEASE</version>
</dependency>
<dependency>
<groupId>org.aspectj</groupId>
<artifactId>aspectjweaver</artifactId>
<version>1.8.13</version>
</dependency>
<dependency>
<groupId>cglib</groupId>
<artifactId>cglib</artifactId>
<version>3.2.7</version>
</dependency>
</dependencies>
2、编写一个接口IBookDAO,提供一个方法addBook
public interface IBookDAO {
String addBook(String bookName);
}
3、编写一个实现类BookDAO并实现抽象方法addBook
public class BookDAO implements IBookDAO {
@Override
public String addBook(String bookName) {
return "添加图书" + bookName + "成功";
}
}
4、编写meta文件告知依赖注入的bean信息
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:p="http://www.springframework.org/schema/p"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd">
<bean id="bookdao" class="com.bryantchang.springtest.dao.BookDAO"></bean>
</beans>
5、编写BookService正式注入依赖
public class BookService {
IBookDAO bookDAO;
public BookService() {
ApplicationContext ctx = new ClassPathXmlApplicationContext("IOCBean1.xml");//告知meta文件的路径,并获取Context对象
bookDAO = (IBookDAO)ctx.getBean("bookdao");//通过ID注入具体的bean
}
public void storeBook(String bookName) {
System.out.println("New book comming...");
String result = bookDAO.addBook(bookName);
System.out.println(result);
}
}
6、最后,我们在测试类中对Bean的注入流程进行测试
public class DemoTest {
@Test
public void testStoreBook() {
BookService service = new BookService();
service.storeBook("《Java编程思想》");
}
}
至此我已经介绍了Spring框架的基本概念以及基本使用,下一篇博客开始将重点介绍Spring的Ioc原理,并实现一个简易的Ioc框架
谢谢你请我吃糖果