【Spring】Spring框架之我见

    xiaoxiao2025-08-21  8

    【导图俯瞰全篇】

     

    一,框架介绍:

              1,先看一下帮助文档的这张图,里边主要包括了Spring自身的功能,还有可以和其框架结合的一些框架,通过这张图可以看出,Spring框架和其他框架的集成能力是非常强的

    2,Spring是一个轻量级的IOC和AOP容器框架:

                     a,轻量级:程序实现不是很复杂,代码不是很多,占用资源不是很多,没有侵入性;

                     b,IOC(Inversion of Control 控制反转):对象创建责任的反转(重点,核心)原则的配置管理,使得应用程序的组件更加快捷简易。;

                     c, Aop(Aspect Oriented Programming):一种面向横切面编程的思想方式,可以进行功能性扩展

                     d,容器:可以容纳对象,并且可以控制对象的生命周期;

    二、步骤

    1、拷jar包

    commons-logging.jar(日志输出操作,实现日志输入的转换)

    spring-aop.jar spring-core.jar spring-context.jar spring-beans.jar spring-expression.jar spring-web.jar spring-tx.jar aopalliance.jar aspectjrt.jar aspectjweaver.jar

    2、拷贝框架的核心配置文件,存放在src目录下

    applicationContext.xml(框架的核心配置文件)

    3,编写框架的核心配置文件,将声明对象都交给Spring框架来创建,以及初始化,例如service层的类,action层类,dao层类等等,都可以交给Spring进行管理,看一个例子:

    [html] view plain copy <span style="font-size:18px;">      <!-- 声明Action对象 -->    <bean id="loginAction" class="com.ljh.struts2.action.LoginAction" scope="prototype"></bean> </span> ·创建对象方式:1、默认单例 scope="singleton"  2、原型模式: scope="prototype"原型模型确保每次检索都会创建单独的对象。在每个用户都需要自己的对象时,原型模型最适合。

    ·工厂BeanFactory:BeanFactory功能是对bean对象的生命周期进行管理的。(创建,初始化,销毁)

    ·ApplicationContext(推荐,也是框架默认的)

    来用才对象来加载Spring配置文件,会在加载时解析配置文件,创建对象,而不是在getBean时实,ApplicationContext接口继承了BeanFactory,所以具备BeanFactory所有功能,同时增加扩展的功能,例如加载资源配置文件,国际化支持等!

    4、加载 配置文件

    利用beanFactory加载配置文件:

    [java] view plain copy <span style="font-size:18px;">      //加载配置文件,创建Spring的应用环境          String path = "applicationContext.xml";               Resource resource = new ClassPathResource(path);    //推荐          //Resource resource = new FileSystemResource("src/applicationContext.xml");          //Resource resource = new ServletContextResource(servletContext, path); //如果文件存放到WEB-INF目录下                    BeanFactory factory = new XmlBeanFactory(resource);            //从Spring环境中获取对象          Object obj = factory.getBean("loginAction");              LoginAction action = (LoginAction)obj ; </span> 

    利用ApplicationContext加载配置文件:

    [java] view plain copy <span style="font-size:18px;">      ApplicationContext ac = new ClassPathXmlApplicationContext("applicationContext.xml");                        Object obj = ac.getBean("loginAction");  </span> 

    三、优点

    1.低侵入式设计,代码污染极低 2.独立于各种 应用服务器,基于Spring框架的应用,可以真正实现Write Once,Run Anywhere的承诺 3.Spring的DI机制降低了 业务对象替换的复杂性,提高了组件之间的解耦 4.Spring的AOP支持允许将一些通用任务如安全、事务、日志等进行集中式管理,从而提供了更好的复用 5.Spring的ORM和DAO提供了与第三方持久层框架的良好整合,并简化了底层的数据库访问 6.Spring并不强制应用完全依赖于Spring,开发者可自由选用Spring框架的部分或全部 7、用依赖注入模式大幅度的减少了程序之间的耦合性 并很好的实现了各种JAVA的设计模式 强制使用者养成用接口编程的习惯

    、第一个Spring小程序

    新建一个User类,一个UserDao类以及一个测试类:

    User.java

    [java] view plain copy package com.adam.java.spring.po;    public class User {      private String name;      private int age;      private int score;      public String getName() {          return name;      }      public void setName(String name) {          this.name = name;      }      public int getAge() {          return age;      }      public void setAge(int age) {          this.age = age;      }      public int getScore() {          return score;      }      public void setScore(int score) {          this.score = score;      }            public String toString(){          return "tostring from user";      }  }   UserDao.java [java] view plain copy package com.adam.java.spring.dao;    import com.adam.java.spring.po.User;    public class UserDao {      private User user;            public void add(){          System.out.println("add from userdao");          System.out.println(user.toString());      }        public User getUser() {          return user;      }        public void setUser(User user) {          this.user = user;      }          }   DITest.java [html] view plain copy package com.adam.java.spring;    import org.springframework.context.ApplicationContext;  import org.springframework.context.support.ClassPathXmlApplicationContext;    import com.adam.java.spring.dao.UserDao;    public class DITest {        @SuppressWarnings("resource")      public static void main(String[] args) {          ApplicationContext atx = new ClassPathXmlApplicationContext("beans.xml");          UserDao userDao = (UserDao) atx.getBean("userDao");          userDao.add();      }    }   一个配置文件beans.xml [html] view plain copy <?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 id="user" class="com.adam.java.spring.po.User"/>  <bean id="userDao" class="com.adam.java.spring.dao.UserDao">      <property name="user" ref="user"/>  </bean>  </beans>   执行测试类,得出如下输出: [html] view plain copy add from userdao  tostring from user  相关资源:Spring SpringMVC Mybatis框架整合例子(SSM) 下载
    最新回复(0)