Spring 框架(一)(IoC和AOP,S2SH和SSM)
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配置成功!
上一篇: 【Spring】——IOC原理(二)
下一篇: Spring(二)----IOC概述
推荐阅读
-
Spring框架学习-Spring和IOC概述
-
一起学Spring之注解和Schema方式实现AOP
-
SSM-Spring-1(IoC配置和DI)
-
【Java】模拟Sping,实现其IOC和AOP核心(一)
-
从零写一个具有IOC-AOP-MVC功能的框架---学习笔记---08.框架的AOP功能和IOC功能测试
-
Spring AOP 代理实现的两种方式: JDK动态代理 和 Cglib框架动态代理
-
Spring框架源码分析(IoC):BeanFactory和ApplicationContext容器家族
-
Spring IOC和AOP剖析
-
Spring的IOC和AOP的基本使用
-
Spring 框架(一)(IoC和AOP,S2SH和SSM)