a )简介
Spring框架,可以解决对象创建以及对象之间依赖关系的一种框架,且可以和其他框架一起使用;Spring与Struts, Spring与hibernate (起到整合(粘合)作用的一个框架)
Spring提供了一站式解决方案:
1) Spring Core spring的核心功能: IOC容器, 解决对象创建及依赖关系
2) Spring Web Spring对web模块的支持。 可以与struts整合,让struts的action创建交给spring -spring mvc模式
3) Spring DAO Spring 对jdbc操作的支持 【JdbcTemplate模板工具类】
4) Spring ORM spring对orm的支持: 既可以与hibernate整合,【session】 也可以使用spring的对hibernate操作的封装
5) Spring AOP 切面编程
6) SpringEE spring 对javaEE其他模块的支持
下面来源
于百度图片
b)时序图
(来源百度)
是不是已经懵了,其实没那么深奥.先来做一个helloworld就明白了
c)开发步骤
spring各个版本中: 在3.0以下的版本,源码有spring中相关的所有包【spring功能 + 依赖包】 如2.5版本;
在3.0以上的版本,源码中只有spring的核心功能包【没有依赖包】 (如果要用依赖包,需要单独下载![还可以去老版本中找])
1) 源码, jar文件:spring-framework-3.2.5.RELEASE
commons-logging-1.1.3.jar 日志
spring-beans-3.2.5.RELEASE.jar bean节点
spring-context-3.2.5.RELEASE.jar spring上下文节点
spring-core-3.2.5.RELEASE.jar spring核心功能
spring-expression-3.2.5.RELEASE.jar spring表达式相关包
以上是必须引入的5个jar文件,在项目中可以用户库管理!
2) 核心配置文件: applicationContext.xml Spring配置文件:applicationContext.xml / bean.xml
不会写xml约束文件?没关系,有参考 该路径下 spring-framework-3.2.5.RELEASE\docs\spring-framework-reference\htmlsingle\index.html
这里还是给个示例:
110 11
发现没spring约束是schema,上一篇随笔struts的约束是dtd.
先解决对象创建吧(剧透:可能整个项目你都看不到一个new关键字哦,这就是spring神奇的地方)
SpringIOC容器
IOC容器创建对象: 创建对象, 有几种方式:
1) 调用无参数构造器
2) 带参数构造器
3) 通过 property [setXxx()]方法初始化对象
1.无参初始化对象
略
2.有参数初始化对象
1 28 13 14 1815 16 17
3.通过 property [setXxx()]方法初始化对象
1 26 7 10 11 1512 13 14
代码:
1 package test_spring; 2 3 import org.springframework.beans.factory.BeanFactory; 4 import org.springframework.beans.factory.xml.XmlBeanFactory; 5 import org.springframework.context.ApplicationContext; 6 import org.springframework.context.support.ClassPathXmlApplicationContext; 7 import org.springframework.core.io.ClassPathResource; 8 import org.springframework.core.io.Resource; 9 10 public class App {11 public static void test1(){12 /**13 * 方式一14 */15 //1.加载资源文件16 Resource resource = new ClassPathResource("bean.xml");17 //2.创建工厂18 BeanFactory bf = new XmlBeanFactory(resource);19 //3.获取对象20 User user1 = (User) bf.getBean("myUser");21 System.out.println(user1);22 }23 24 public static void test2(){25 /**26 * 方式二 **推荐第二种**27 */28 //1.加载资源并获得工厂29 ApplicationContext context = new ClassPathXmlApplicationContext ("bean.xml");30 //2.获取对象 2.1 2.2 二选一,推荐使用2.131 //2.1 设置属性"setXxx()"的初始化对象 32 //User user2 = (User) context.getBean("myUser1");33 //2.2 构造器初始化对象 34 User user3 = (User) context.getBean("myUser2");35 //System.out.println(user2);36 System.out.println(user3);37 38 }39 public static void main(String arg[]){40 //test1(); 41 test2(); //User [name=kangkang, sex=man, number=456] 42 } 43 }
目录结构:
未完待续......