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配置成功!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值