欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Spring 框架(一)(IoC和AOP,S2SH和SSM)

程序员文章站 2022-07-12 13:02:26
...

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项目,添加依赖

       Spring 框架(一)(IoC和AOP,S2SH和SSM)

 

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和AOP,S2SH和SSM)

相关标签: spring ioc aop