一. Spring基础认识
1.1 为什么需要Spring
1.1.1 代码耦合度较高
-
应用程序是由一组相互协作的对象组成,一个完整的应用是由一组相互协作的对象组成。所以开发一个应用除了要开发业务逻辑之外,最多的是关注如何使这些对象协作来完成所需功能,而且要低耦合、高内聚。业务逻辑开发是不可避免的,那就需要有个框架出来帮我们来创建对象及管理这些对象之间的依赖关系;
-
public class EmployeeServiceImpl { //如果接口和实现类在同一地方存在,那么就是高耦合,维护难度增加了。 private IEmployeeDao employeeDao = new EmployeeJdbcDaoImpl(); }
-
EmployeeService对象除了完成业务逻辑功能的实现,还需要把数据通过EmployeeDao进行持久化,那么EmployeeService对象就依赖于EmployeeDao,如果EmployeeService离开了EmployeeDao就无法进行工作了;
1.1.2 对象之间依赖关系处理繁琐
- 如果对象有很多,且互相存在依赖关系,并且有的对象需要单例模式,有的则需要多个实例,处理起来比较繁琐;
1.1.3 事务控制繁琐
- 实际开发中,某一个业务逻辑可能会牵涉多个操作(多个sql),事务开启在 service 层,是极好的。但是每个方法前都要开启事务,每个方法后都要关闭事务,这样就会导致代码臃肿,开发效率低下的问题;
二. Spring基础项目搭建
2.1 新建Web动态项目
- 右键----》new ----》Dynamic Web Project —》配置class文件生成的目录为
WebContext/WEB-INF/classes
,最后一步勾选上生成web.xml
文件
2.2 导入jar包
spring-beans-4.1.2.RELEASE.jar
spring-context-4.1.2.RELEASE.jar
spring-core-4.1.2.RELEASE.jar
spring-expression-4.1.2.RELEASE.jar
commons-logging-1.1.1.jar
(日志)
2.3 创建资源文件夹和配置文件
-
创建resources资源文件夹
-
创建
applicationContext.xml
配置文件 -
配置代码如下
-
<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd"> <!-- bean标签,用于Spring管理一个bean类 id属性为bean标签的名字 class属性为类的全限定名 --> <bean id="helloBean" class="com.xxxx._01bean.HelloBean"></bean> </beans>
-
2.4 新建一个测试类
-
新建一个HelloBean类
-
public class HelloBean { public HelloBean() { System.out.println("HelloBean对象诞生了"); } }
-
新建BeanTest测试类
-
import org.junit.Test; import org.springframework.beans.factory.BeanFactory; import org.springframework.beans.factory.xml.XmlBeanFactory; import org.springframework.context.ApplicationContext; import org.springframework.context.support.ClassPathXmlApplicationContext; import org.springframework.core.io.ClassPathResource; import org.springframework.core.io.Resource; public class BeanTest { /** * BeanFactory和 ApplicationContext的区别 * ApplicationContext接口 继承 BeanFactory接口 * 1.BeanFactory:懒加载模式:去Spring对象拿的时候,Spring才开始创建对象 * 2.ApplicationContext:迫切加载:不管你需不需要,先创建一个对象 * @throws Exception */ @Test public void testBean() throws Exception { //读取资源文件 Resource resource = new ClassPathResource("applicationContext.xml