Spring入门

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

  这里还是给个示例:

 1 <beans xmlns="http://www.springframework.org/schema/beans"
 2     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
 3     xmlns:p="http://www.springframework.org/schema/p"
 4     xmlns:context="http://www.springframework.org/schema/context"
 5     xsi:schemaLocation="
 6         http://www.springframework.org/schema/beans
 7         http://www.springframework.org/schema/beans/spring-beans.xsd
 8         http://www.springframework.org/schema/context
 9         http://www.springframework.org/schema/context/spring-context.xsd">
10     
11 </beans> 

     发现没spring约束是schema,上一篇随笔struts的约束是dtd.

先解决对象创建吧(剧透:可能整个项目你都看不到一个new关键字哦,这就是spring神奇的地方)

     SpringIOC容器 

      IOC容器创建对象: 创建对象, 有几种方式:

        1) 调用无参数构造器

        2) 带参数构造器

        3) 通过 property [setXxx()]方法初始化对象

 1.无参初始化对象

  略 

 2.有参数初始化对象

 1 <?xml version ="1.0" encoding ="UTF-8"?>
 2 <beans xmlns="http://www.springframework.org/schema/beans"  
 3     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"  
 4     xmlns:p="http://www.springframework.org/schema/p"  
 5     xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd">    
 8     <!-- 构造器初始化对象 
 9         1>实体类类中必须有对应的含参构造器 
10         2>type 必须写全称 除基本类型外如 int
11         3>index从0开始 对应构造器的第一个参数
12     -->
13     <bean id="myUser2" class="test_spring.User">
14         <constructor-arg index="0" type="java.lang.String" value="kangkang"></constructor-arg>
15         <constructor-arg index="1" type="java.lang.String" value="man"></constructor-arg>
16         <constructor-arg index="2" type="java.lang.String" value="456"></constructor-arg>
17     </bean>
18 </beans>

 

3.通过 property [setXxx()]方法初始化对象

 1 <?xml version ="1.0" encoding ="UTF-8"?>
 2 <beans xmlns="http://www.springframework.org/schema/beans"  
 3     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"  
 4     xmlns:p="http://www.springframework.org/schema/p"  
 5     xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd">    
 6     
 7     <!-- 设置属性"setXxx()"的初始化对象 
 8         推荐使用 理由:Javabean中正好对应有setXxx方法
 9     -->
10      <bean id="myUser" class="test_spring.User">
11         <property name="name" value="KingShing"/>
12         <property name="sex" value="man"/>
13         <property name="number" value="123"/>
14     </bean>
15 </beans>

 

代码:

 

 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.1
31              //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  }

 

目录结构:

 

 

 

未完待续......

 

posted @ 2017-08-18 15:05  KingShing  阅读(234)  评论(0编辑  收藏  举报