`
XTU_xiaoxin
  • 浏览: 237202 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

一步一步学习spring(一)——spring入门示例

阅读更多
要想学习spring,首先,则先要搭建起一个spring例子,然后跑起来,明白spring到底是什么,干什么用的,为什么要用spring等。首先,利用spring的IoC特性一步一步搭建起一个例子来:
一.在eclipse中,新建一java或web工程 ,引入如下几个jar包:
* SPRING_HOME/dist/spring.jar
* SPRING_HOME/lib/jakarta-commons/commons-logging.jar
* SPRING_HOME/lib/log4j/log4j-1.2.14.jar

二.编写反转测试接口以及类。(模拟在项目中使用多种数据库的情况,由于是测试类,所以代码可能比较简洁且不太规范,明白其意思即可)。
接口 IUserDao,代码如下:
package com.dao;

import com.model.User;

public interface IUserDao {

	public User findUserById();
}

下面为接口IUserDao的实现子类,一个模拟从Oracle数据库中查询用户Bean,另一个模拟从MySql数据库中查询客户Bean,具体代码如下:

  UserOracleDaoImple类(相关Oracle数据库的DAO)
package com.dao;

import com.model.User;

public class UserOracleDaoImple implements IUserDao {

	public UserOracleDaoImple() {
	}
	public User findUserById() {
		System.out.println("现在执行的是ORACLE数据库查询...........");
		return null;
	}
}


UserMySqlDaoImple类(相关MySql数据库的DAO)
package com.dao;

import com.model.User;

public class UserMySqlDaoImple implements IUserDao {

	public UserMySqlDaoImple() {
	}
	
	public User findUserById() {
		System.out.println("现在执行的是MYSQL数据库查询...........");
		return null;
	}

}


UserManager类(用户操作的辅助类)
package com.manager;

import com.dao.IUserDao;
import com.model.User;

public class UserManager {

	private IUserDao dao;
	public User findUser() {
		return dao.findUserById();
	}
	public IUserDao getDao() {
		return dao;
	}
	public void setDao(IUserDao dao) {
		this.dao = dao;
	}
}



三.在配置文件中,对所要反转控制的Bean进行配置,大致配置信息如下:

<bean id="userDao4MySqlImpl" class="com.dao.UserMySqlDaoImple" init-method="init22" />
	<bean id="userDao4OracleImpl"  class="com.dao.UserOracleDaoImple"/>
    
	<bean  name="userManager" class="com.manager.UserManager">
		<property name="dao" >
		   <ref bean="userDao4MySqlImpl"/>
		</property>
	</bean>

四. 编写测试类,进行测试
测试类 Test.java
/**
	 * @param args
	 * @throws IOException 
	 * @throws IllegalAccessException 
	 * @throws InstantiationException 
	 */
	public static void main(String[] args) throws Exception{
		Resource resource = new ClassPathResource("applicationContext.xml");
		//BeanFactory act = new XmlBeanFactory(resource);
     	ApplicationContext act = new ClassPathXmlApplicationContext("applicationContext.xml");
        UserManager um = (UserManager)act.getBean("userManager");
		
	}

运行,得出结果:UserMySqlDaoImple初始化了
OK!一个简单的spring例子搭建完成,下面我们将对spring的核心技术以及特性进行详细研究和分析。
4
4
分享到:
评论

相关推荐

    SpringMVC 快速入门

    极客学院java中级课程,SpringMVC系列教材——快速入门

    JavaEE开发的颠覆者SpringBoot实战[完整版].part3

    《JavaEE开发的颠覆者: Spring Boot实战》从Spring 基础、Spring MVC 基础讲起,从而无难度地引入Spring Boot 的学习。涵盖使用Spring Boot 进行Java EE 开发的绝大数应用场景,包含:Web 开发、数据访问、安全控制...

    JavaEE开发的颠覆者SpringBoot实战[完整版].part2

    《JavaEE开发的颠覆者: Spring Boot实战》从Spring 基础、Spring MVC 基础讲起,从而无难度地引入Spring Boot 的学习。涵盖使用Spring Boot 进行Java EE 开发的绝大数应用场景,包含:Web 开发、数据访问、安全控制...

    spring web flow demo

    从清单 1 中,应注意到一个很重要的特征—— Spring Web Flow 语义与 Servlet API 3 无关。更确切地讲, Spring Web Flow 语义关注的是业务的流程,并未与 Sun 公司的 Web 规范紧密结 合,这种描述是更高层次的抽象...

    JavaEE开发的颠覆者SpringBoot实战[完整版].part1

    《JavaEE开发的颠覆者: Spring Boot实战》从Spring 基础、Spring MVC 基础讲起,从而无难度地引入Spring Boot 的学习。涵盖使用Spring Boot 进行Java EE 开发的绝大数应用场景,包含:Web 开发、数据访问、安全控制...

    Spring Security-3.0.1中文官方文档(翻译版)

    这次发布的Spring Security-3.0.1 是一个bug fix 版,主要是对3.0 中存在的一些问题进 行修 正。文档中没有添加新功能的介绍,但是将之前拼写错误的一些类名进行了修正,建议开发 者以这一版本的文档为参考。 ...

    SpringSecurity 3.0.1.RELEASE.CHM

    入门 1. 介绍 1.1. Spring Security是什么? 1.2. 历史 1.3. 发行版本号 1.4. 获得Spring Security 1.4.1. 项目模块 1.4.1.1. Core - spring-security-core.jar 1.4.1.2. Web - spring-security-web.jar ...

    Spring Security 中文教程.pdf

    入门 1. 介绍 1.1. Spring Security是什么? 1.2. 历史 1.3. 发行版本号 1.4. 获得Spring Security 1.4.1. 项目模块 1.4.1.1. Core - spring-security-core.jar 1.4.1.2. Web - spring-security-...

    Java Web编程宝典-十年典藏版.pdf.part2(共2个)

    第1篇为技能学习篇,主要包括Java Web开发环境、JSP语法、JSP内置对象、Java Bean技术、Servlet技术、EL与JSTL标签库、数据库应用开发、初识Struts2基础、揭密Struts2高级技术、Hib锄劬e技术入门、Hibernate高级应用...

    struts2 in action 中文版

    之后,深入讲解了Struts 2的核心概念和组件,剖析了每个组件的功能,并提供了一个全功能的Struts 2 Web示例应用程序——Struts 2公文包示例应用程序。最后讲解了从核心组件中挑选出来的高级技术以及一些框架的高级...

    asp.net知识库

    .NET关于string转换的一个小Bug Regular Expressions 完整的在.net后台执行javascript脚本集合 ASP.NET 中的正则表达式 常用的匹配正则表达式和实例 经典正则表达式 delegate vs. event 我是谁?[C#] 表达式计算引擎...

    swing界面设计之JTree

    (一) Spring 开发 Swing GUI 简介——依赖注入和富客户机 5 关于本教程 5 前提条件 6 Spring 和依赖注入概述 7 什么是 Spring 框架? 7 什么是依赖注入? 7 环境设置 7 选择编译环境 7 设置 Ant 8 通过 Ant 自动下载...

    围棋java源码eclipse-getting-started-in-5-steps:如何通过5个简单步骤安装和开始使用Java、Eclips

    Java、Eclipse、Maven、JUnit、Mockito、Spring、Spring Boot 和 Kotlin 以终为始 帮助作为所有课程的安装指南 帮助解决安装问题,尤其是 Maven 安装问题 帮助作为其他课程中基本框架的介绍 概述 设置这些示例 安装...

    Struts2 in action中文版

    第一部分 Strut 2:一个全新的框架 第1章 Struts 2:现代Web框架 2 1.1 Web应用程序:快速学习 2 1.1.1 构建Web应用程序 2 1.1.2 基础技术简介 3 1.1.3 深入研究 6 1.2 Web应用程序框架 7 1.2.1 什么是框架 7 1.2.2 ...

    JAVA上百实例源码以及开源项目源代码

     一个Java+ajax写的登录实例,附有JAVA源文件,JAVA新手朋友可以学习一下。 JAVA+JSP的聊天室 8个目标文件 简单 JavaScript万年历 显示出当前时间及年份,还可以选择年份及月份和日期 Java编写的HTML浏览器 一个...

    Grails权威指南

     10.2.2 示例b——显示del.icio.us中的最新数据  10.2.3 测试服务  10.3 使用quartz进行作业调度  10.3.1 简单的作业  10.3.2 cron作业  10.4 作业实战  10.4.1 修改领域模型  10.4.2...

    JAVA上百实例源码以及开源项目

     一个Java+ajax写的登录实例,附有JAVA源文件,JAVA新手朋友可以学习一下。 JAVA+JSP的聊天室 8个目标文件 简单 JavaScript万年历 显示出当前时间及年份,还可以选择年份及月份和日期 Java编写的HTML浏览器 一个...

Global site tag (gtag.js) - Google Analytics