1、Spring介绍
spring是一个轻量级的java开源框架,从单一的ioc和aop框架发展为一站式、多项目的基础平台系统。为了解决企业应用开发的复杂性而创建的。Spring可以和其它框架进行整合,从而实现多个框架的协同开发
Spring的两个核心基础:控制反转(IoC)和面向切面(AOP)
控制反转(IoC):(Inversion of Control)控制反转,是一种设计思想,即将设计好的对象交给容器控制,而不是传统在你的对象内部之间控制。容器控制对象(控制),容器帮忙创建及注入依赖对象(反转)。(将对象的权限交给Spring)
控制反转IoC(Inversion of Control)是说创建对象的控制权进行转移,以前创建对象的主动权和创建时机是由自己把控的,而现在这种权力转移到第三方。获得依赖对象的方式反转了。
面向切面(AOP):用刀把一个西瓜分成两瓣,切开的切口就是切面;炒菜,锅与炉子共同来完成炒菜,锅与炉子就是切面。web层级设计中,web层->网关层->服务层->数据层,每一层之间也是一个切面。编程中,对象与对象之间,方法与方法之间,模块与模块之间都是一个个切面。(相当于一个判断模块放在两者之间。。事务)
2、S2SH 和 SSM 的区别
S2SH是指 Spring+Struts2+Hibernate ; SSM指Spring+SpringMVC+MyBatis
Struts2 和 SpringMVC的区别:
1. Struts2的入口是Filter,而SpringMVC的入口是Servlet。
2. Struts2基于类设计,每发送的一个请求都对应一个Action; 而SpringMVC基于方法。因此SpringMVC的执行速度比Struts2快。
3. 在页面开发方面,Struts2中的OGNL比SpringMVC效率高;但SpringMVC支持JSR303、Spring表单标签等,处理起来更叫方便。
Hibernate 和 Mybatis 的区别:
(1)Hibernate功能更加强大,但学习难度大;Mybatis小巧灵活,学习门门槛低。
(2)Hibernate的DAO层次开发比MyBatis简单,MyBatis需要维护SQL的结果映射。
(3)Hibernate方便数据库的移植,而MyBatais对不同的数据库需要写不同的SQL。
(4)在SQL优化方面,使用MyBatis更方便(可以写更为优化的SQL语句)。
3、搭建Spring开发环境
Spring核心模块:
spring-core:IoC 和依赖注入;
spring-beans:BeanFactory 提供工厂功能,移除单例的需求;
spring-context:国际化、事件传播、资源加载,创建上下文等;
spring-context-content-support:提供缓存、邮件等
spring-expression(表达式语言,运行时查询和操作对象图)等模块组成。
1. http://repo.spring.io/simple/libs-release-local/org/springframework/spring/ 下载名称为 springframework-3.2.13.RELEASE-dist.zip 的压缩包 http://commons.apache.org/proper/commons-logging/download_logging.cgi 下载。该 JAR 包现在最新版本为 commons-logging.1.2, 下的文件到自己项目中。
2. maven下载,引入依赖;
4、简单spring程序
1.创建web项目,添加依赖
2、创建调用接口(使用接口从ioc中获取数据调用方法(无new),因为在ioc中创建的对象(初始化))
public interface PersonDao {
public void add();
}
3、创建接口实现类(方法是具体实现)
public class PersonDaoImpl implements PersonDao {
@Override
public void add() {
System.out.println("add()执行。。。");
}
}
4、创spring配置文件
<?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-3.2.xsd">
<!-- 由 Spring容器创建该类的实例对象 -->
<bean id="personDao" class="com.mengma.ioc.PersonDaoImpl" />
</beans>
5、测试
public class Test {
public static void main(String[] args) {
ApplicationContext applicationContext=new ClassPathXmlApplicationContext("applicationContext.xml");
PersonDao personDao= (PersonDao) applicationContext.getBean("personDao");
personDao.add();
}
6、测试结果如下,则spring配置成功!