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. confluence

    Confluence Confluence是一个专业的wiki程序.它是一个知识管理的工具,通过它可以实现团队成员之间的协作和知识共享. Confluence不是一个开源软件,非商业用途可以免费使用. ...

  2. EntityFramework异常The specified cast from a materialized 'System.Double' type to the 'System.Single' type is not valid.

    实体类: public class ReportEntity { public string FactorName { get; set; } public double MaxVal { get; ...

  3. 对象内存空间 在创建对象后 运行时 会把对象的方法放到jvm的方法区中 调用时 将方法拿到栈中 执行完后 这个方法会出栈 然后新的方法方法进栈

  4. poj2559 Largest Rectangle in a Histogram(单调栈)

    Description A histogram is a polygon composed of a sequence of rectangles aligned at a common base l ...

  5. 「BJWC2018」Border 的四种求法

    「BJWC2018」Border 的四种求法 题目描述 给一个小写字母字符串 \(S\) ,\(q\) 次询问每次给出 \(l,r\) ,求 \(s[l..r]\) 的 Border . \(1 \l ...

  6. 【bzoj2878】 Noi2012—迷失游乐园

    http://www.lydsy.com/JudgeOnline/problem.php?id=2878 (题目链接) 题意 求基环树上以任意点为起点的简单路径期望长度. Solution 啊啊啊好丑 ...

  7. POJ 2240 Arbitrage / ZOJ 1092 Arbitrage / HDU 1217 Arbitrage / SPOJ Arbitrage(图论,环)

    POJ 2240 Arbitrage / ZOJ 1092 Arbitrage / HDU 1217 Arbitrage / SPOJ Arbitrage(图论,环) Description Arbi ...

  8. 【uoj428】普通的计数题

    Portal --> uoj428 Solution 不会胖子的一个log正解qwq只能怂怂滴写分治了qwq ​ 首先就是一个我想不到的转化qwq ​ 我们将第\(i\)次操作加入的数看成一个编 ...

  9. (转)win下修改jdk环境变量后,java版本不变 java -version

    背景:在windows下安装了多个版本的jdk,发现修改环境变量无法切换. win 7环境下修改JAVA_HOME后,在命令行执行:java -version 发现版本没有变化,以为需要重启才行,就把 ...

  10. Nginx的基本配置案例

    Nginx的基本配置案例 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.Nginx配置虚拟主机   .操作系统环境 [root@yinzhengjie ~]# cat /etc ...