要想学习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的核心技术以及特性进行详细研究和分析。
分享到:
相关推荐
极客学院java中级课程,SpringMVC系列教材——快速入门
《JavaEE开发的颠覆者: Spring Boot实战》从Spring 基础、Spring MVC 基础讲起,从而无难度地引入Spring Boot 的学习。涵盖使用Spring Boot 进行Java EE 开发的绝大数应用场景,包含:Web 开发、数据访问、安全控制...
《JavaEE开发的颠覆者: Spring Boot实战》从Spring 基础、Spring MVC 基础讲起,从而无难度地引入Spring Boot 的学习。涵盖使用Spring Boot 进行Java EE 开发的绝大数应用场景,包含:Web 开发、数据访问、安全控制...
从清单 1 中,应注意到一个很重要的特征—— Spring Web Flow 语义与 Servlet API 3 无关。更确切地讲, Spring Web Flow 语义关注的是业务的流程,并未与 Sun 公司的 Web 规范紧密结 合,这种描述是更高层次的抽象...
《JavaEE开发的颠覆者: Spring Boot实战》从Spring 基础、Spring MVC 基础讲起,从而无难度地引入Spring Boot 的学习。涵盖使用Spring Boot 进行Java EE 开发的绝大数应用场景,包含:Web 开发、数据访问、安全控制...
这次发布的Spring Security-3.0.1 是一个bug fix 版,主要是对3.0 中存在的一些问题进 行修 正。文档中没有添加新功能的介绍,但是将之前拼写错误的一些类名进行了修正,建议开发 者以这一版本的文档为参考。 ...
入门 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 ...
入门 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-...
第1篇为技能学习篇,主要包括Java Web开发环境、JSP语法、JSP内置对象、Java Bean技术、Servlet技术、EL与JSTL标签库、数据库应用开发、初识Struts2基础、揭密Struts2高级技术、Hib锄劬e技术入门、Hibernate高级应用...
之后,深入讲解了Struts 2的核心概念和组件,剖析了每个组件的功能,并提供了一个全功能的Struts 2 Web示例应用程序——Struts 2公文包示例应用程序。最后讲解了从核心组件中挑选出来的高级技术以及一些框架的高级...
.NET关于string转换的一个小Bug Regular Expressions 完整的在.net后台执行javascript脚本集合 ASP.NET 中的正则表达式 常用的匹配正则表达式和实例 经典正则表达式 delegate vs. event 我是谁?[C#] 表达式计算引擎...
(一) Spring 开发 Swing GUI 简介——依赖注入和富客户机 5 关于本教程 5 前提条件 6 Spring 和依赖注入概述 7 什么是 Spring 框架? 7 什么是依赖注入? 7 环境设置 7 选择编译环境 7 设置 Ant 8 通过 Ant 自动下载...
Java、Eclipse、Maven、JUnit、Mockito、Spring、Spring Boot 和 Kotlin 以终为始 帮助作为所有课程的安装指南 帮助解决安装问题,尤其是 Maven 安装问题 帮助作为其他课程中基本框架的介绍 概述 设置这些示例 安装...
第一部分 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+ajax写的登录实例,附有JAVA源文件,JAVA新手朋友可以学习一下。 JAVA+JSP的聊天室 8个目标文件 简单 JavaScript万年历 显示出当前时间及年份,还可以选择年份及月份和日期 Java编写的HTML浏览器 一个...
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+ajax写的登录实例,附有JAVA源文件,JAVA新手朋友可以学习一下。 JAVA+JSP的聊天室 8个目标文件 简单 JavaScript万年历 显示出当前时间及年份,还可以选择年份及月份和日期 Java编写的HTML浏览器 一个...