【导图俯瞰全篇】
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的设计模式 强制使用者养成用接口编程的习惯
新建一个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) 下载