Spring六大模块

1、SpringCore  spring的核心功能:IOC容器,解决对象的创建及依赖关系

2、SpringWeb   spring对Web模块的支持

3、SpringDAO  spring对JDBC的支持

4、SpringORM  spring对ORM的支持

5、SpringAOP  切面编程

6、SpringEE  spring对JavaEE其他模块的支持

准备工作:从Spring官网上下载Spring的jar包,我这里下载的是4.1.6的版本 (这里分享一下http://pan.baidu.com/s/1gf67MDl,如果链接失效就去官网下载。)

从SpringCore开始

1、在eclipse中建立一个web项目,命名为HelloSpring.

2、导入SpringCore需要的jar包

spring-core-4.1.6.RELEASE.jar           Spring核心功能
spring-context-4.1.6.RELEASE.jar    Spring上下文节点
spring-expression-4.1.6.RELEASE.jar  Sring表达示相关
spring-beans-4.1.6.RELEASE.jar  Spring bean节点
commons-logging-1.1.3.jar Spring依赖的日志包,该包需要单独下载

3、Spring配置文件

applicationContext.xml

<!--在src下建包命名为com.isoftstone.xml.在该包下新建一个xml文件命名为applicationContext.xml

这里需要引入applicationContext的约束,其位置在
spring-framework-4.1.6\spring-framework-4.1.6.RELEASE\docs\spring-framework-reference\htmlsingle\index.html 这是一个schema约束,可直接搜索xmlns:,这里找的是一个带p名称空间的。搜索xmlns:p找到需要的约束
--> <?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"
    xmlns:context="http://www.springframework.org/schema/context"
    xsi:schemaLocation="
        http://www.springframework.org/schema/beans
        http://www.springframework.org/schema/beans/spring-beans.xsd
        http://www.springframework.org/schema/context
        http://www.springframework.org/schema/context/spring-context.xsd">
</beans>

4、声明一个实体类

package com.isoftstone.bean;

public class User {

    private int id;
private String name;
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}

5、声名一个action,但此时对象的创建交由Spring完成

<!-- IOC容器配置,要创建的所有对象都配置在这里 -->
<bean id="user" class="com.isoftstone.bean.User"></bean>
   @Test
public void testIOC(){
/*new创建对象*/
//User user = new User(); //现在把对象的创建交给IOC容器
Resource resource = new ClassPathResource("com/isoftstone/xml/applicationContext.xml"); //创建容器对象(Bean的工厂)
BeanFactory factory = new XmlBeanFactory(resource); //得到容器创建的对象
User user = (User)factory.getBean("user");
System.out.println(user.getId());
} //方法二,这种方法更方便
@Test
public void testIC(){
ApplicationContext ac = new ClassPathXmlApplicationContext("com/isoftstone/xml/applicationContext.xml");
User user = (User)ac.getBean("user");
System.out.println(user);
}

IOC创建对象的细节

1、单例与多例
<!--IOC默认以单例模式创建对象
在bean里还有一个属性是 scope="singleton"。单例模式下可以不用写
如果是多例模式就需要加上 scope="prototype"-->
<bean id="user" class="com.isoftstone.xml.User" scope="prototype"> <!--多例模式下创建对象--> 2、对象的创建时机
单例模式下在启动(容器初始化前),就已经创建了bean,且整个应用只有一个
多例模式下在用到对象的时候才创建对象 3、懒加载 lazy-init
lazy-init="true" 配合单例模式使用,在用到对象的时候再创建对象 4、初始化方法与销毁方法
init-method="init_user"
destory-method="destory_user"
在用这两个属性前需要先在User实体类中编写好对应的方法

IOC入门的更多相关文章

  1. Spring框架[一]——spring概念和ioc入门(ioc操作xml配置文件)

    Spring概念 spring是开源的轻量级框架(即不需要依赖其他东西,可用直接使用) spring核心主要两部分 aop:面向切面编程,扩展功能不是修改源代码来实现: ioc:控制反转,比如:有一个 ...

  2. Spring入门1. IoC入门实例

    Spring入门1. IoC入门实例 Reference:Java EE轻量级解决方案——S2SH 前言: 之前学习过关于Spring的一点知识,曾经因为配置出现问题,而总是被迫放弃学习这些框架技术, ...

  3. 【Spring】---【IOC入门案例】

    第一步:导入Jar包 第二步:创建类,在类里面创建方法 public class User { public void add(){ System.out.println("-------- ...

  4. 二 Spring的IOC入门,环境搭建,Spring测试类

    IOC:inversion of Control  控制反转,Spring框架的核心.削减计算机程序的耦合问题,把对象(例如JDBC)的创建权交给Spring. IOC的两种类型: 依赖注入: 依赖查 ...

  5. 1、Spring简介及IOC入门案例

    一.Spring框架介绍 1.介绍 Spring框架是由于软件开发的复杂性而创建的.Spring使用的是基本的JavaBean来完成以前只可能由EJB完成的事情.然而,Spring的用途不仅仅限于服务 ...

  6. Spring IoC入门

    ------------------siwuxie095                                 Spring IoC 环境搭建         1.先下载相关库文件,下载链接 ...

  7. IOC入门1

    1.配置文件 <?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http:/ ...

  8. Spring初识及其IOC入门

    一.框架 框架是一些类和接口的集合,它一个半成品,已经对基础的代码进行了封装并提供相应的API,开发者在使用框架时直接调用封装好的api可以省去很多代码编写,从而提高工作效率和开发速度. 二.Spri ...

  9. Spring.Net的IOC入门

    1.构造器注入 namespace Spring.Net { class Program { //构造器注入 static void Main(string[] args) { IApplicatio ...

随机推荐

  1. resultMap 表示转换字段后 resultType 表示没·有转换字段

    resultMap 表示转换字段后 resultType 表示没·有转换字段

  2. webapi Route 特性

    转载:http://www.th7.cn/Program/net/201410/302571.shtml ASP.NET Web API路由,简单来说,就是把客户端请求映射到对应的Action上的过程 ...

  3. 【CF1077F2】Pictures with Kittens 单调队列+dp

    题目大意:给定一个长度为 N 的序列,点有点权,从序列中选出恰好 X 个数,并且保证任意连续的 K 个数中均有一个被选中,求选出的点权最大是多少. 题解:此题可以作为 烽火传递+ 来处理,只不过在烽火 ...

  4. java基础基础总结----- 随机数(产生四个随机数)

    前言:在开发的时候经常会遇见,一些验证码登录,其实这些东西,很简单.我曾经开发过一个验证码登录的页面,那时用的插件.但是作为一个合格的开发者,要了解其内部的核心知识,有些东西,可以不深入了解,但是要做 ...

  5. 【CSS】盒子模型的计算

    1.标准盒子的尺寸计算 盒子自身的尺寸:内容的宽高+两侧内边距+两侧边框 盒子在页面中占位的尺寸:内容的宽高+两侧内边距+两侧边框+两侧外边距 <!DOCTYPE html> <ht ...

  6. C语言复习---零散补充

    一:double和float使用scanf获取数据 printf输出float和double都可以用%f,double还可以用%lf. 2 scanf输入float用%f,double输入用%lf,不 ...

  7. js基础回顾----原型链和原型

    所有的对象都可以自由扩展属性 (null 除外) 所有的引用类型(对象,数组,函数)都有一个_proto_属性 所有的函数都有一个prototype属性 所有引用类型对象的_proto_属性指向它的的 ...

  8. SQL记录-PLSQL过程

    PL/SQL过程   子程序是一个程序单元/模块执行特定的任务.这些子程序被组合以形成更大的程序.这基本上是被称为“模块化设计”.子程序可以调用由另一个子程序或程序被称为调用程序. 子程序可以创建: ...

  9. 一些javascript的工具书

    http://pan.baidu.com/s/1jGj9CvO

  10. JavaScript的单线程性质以及定时器的工作原理

    前些日子还在网上争论过js动画用setTimeout还是setInterval,个人偏向于setTimeout,当动画中牵扯到ajax时用setInterval会有时间偏差,出现一些问题即使用clea ...