- 浏览: 1590068 次
- 来自: 上海
文章分类
- 全部博客 (374)
- Java (101)
- Struts (54)
- Oracle (30)
- JavaScript (16)
- Spring (27)
- Hibernate (16)
- MyEclipse (3)
- JSF (1)
- FreeMarker (2)
- SiteMesh (2)
- JfreeChart (2)
- Ibatis (2)
- JSP (12)
- MyBatis (4)
- SWFupload (1)
- EJB (4)
- Jboss (4)
- WebService (2)
- Linux (16)
- Android (2)
- XML (6)
- Java 网络编程 (13)
- AXIS2 (1)
- FTP (1)
- Jswing (1)
- Socket (3)
- 杂文选集 (6)
- solr (2)
- PS (1)
- Tomcat (7)
- JDBC (9)
- Highcharts (1)
- maven (1)
- Nodejs (0)
- navicat (2)
- Exception (5)
- eclipse (3)
- jQuery (1)
- springMVC (4)
- MySQL (11)
- SVN (1)
- Sql Server (1)
- zookeeper (1)
- JVM (1)
- Groovy (2)
- Git (1)
- Nginx (1)
- DynamicReport (1)
- IDEA (2)
- JasperReports (1)
- Postgresql (2)
- Mac (1)
- gradle (1)
- 数据结构算法 (1)
最新评论
-
hpu145:
引用引用
java 千分位的添加和去除 -
被遗忘的下路:
少了个junit-4.8.2的包
SSH2整合完整案例(四十三) -
白天看黑夜:
java过滤emoji字符处理,希望能帮到你http://ww ...
emoji 表情图片解决方法 -
caipeiming:
这个挺好JavaScript实现input输入框控件只允许输入 ...
js 控制文本框只能输入中文、英文、数字等 -
双子树:
东西太好啦受教啊
Struts2 JSP中将list,set ,Map传递到Action然后<s:iterator>遍历(三十五)
下面使用的 spring-3.0版本来演示
目标任务
1.配置最简单的,spring 应用
2.使用spring管理ServiceBean
3.手动编写代码 模拟 spring的初始工作
1.首先来看 spring 应用中最基本的jar
2.spring的配置文件 (可以从spring的文档中拷贝,或者 spring自带的 案例中拷贝)
3.就这样 我们就可以 来初始化 spring 容器 编写单元测试
//上面 如果测试单元没有问题 就说明 spring 框架 使用成功 !! 恭喜 !!
4.下面 来看 使用 spring容器来管理我们的 bean (首先定义bean--->然后配置)
5.在spring配置文件中配置
6.测试
//如果能在控制台 打印出 "我就是save方法!" 恭喜成功!
7.看了上面这么多 那么spring到底怎么初始化 和 管理的 我们的bean呢? 我们自己来模拟写一个 spring的 init 初始工作 (使用 dom4j 来读取配置文件 -->使用 反射来创建对象)
8.首先加入 dom4j-1.6.1.jar 和 jaxen.jar(dom4j需要的一个jar)
9.定义隐射spring配置文件bean 的类
10.定义 我们自己的 读取spring配置文件中的 ClassPathXmlApplicationContext 类
11.好啦 我们来测试吧
//如果 同样看到 "我就是save方法!" 我想 你应该对spring有所了解了吧?? 嘻嘻
//睡觉啦 呵呵 88
目标任务
1.配置最简单的,spring 应用
2.使用spring管理ServiceBean
3.手动编写代码 模拟 spring的初始工作
1.首先来看 spring 应用中最基本的jar
2.spring的配置文件 (可以从spring的文档中拷贝,或者 spring自带的 案例中拷贝)
<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.0.xsd http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd "> </beans>
3.就这样 我们就可以 来初始化 spring 容器 编写单元测试
package junit.test; import org.junit.Test; import org.springframework.context.ApplicationContext; import org.springframework.context.support.ClassPathXmlApplicationContext; public class SpringTest { @Test //测试 spring的 初始化 public void init(){ ApplicationContext context=new ClassPathXmlApplicationContext("classpath:applicationContext.xml"); } }
//上面 如果测试单元没有问题 就说明 spring 框架 使用成功 !! 恭喜 !!
4.下面 来看 使用 spring容器来管理我们的 bean (首先定义bean--->然后配置)
package com.person.service; public interface PersonService { public void save(); }
package com.person.service.impl; import com.person.service.PersonService; public class PersonServiceBean implements PersonService { public void save(){ System.out.println("我就是save方法!"); } }
5.在spring配置文件中配置
<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.0.xsd http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd "> <!-- 这里配置后 就会有 spring来管理, 注意id 和name 的区别 --> <bean id="personService" class="com.person.service.impl.PersonServiceBean"> </bean> </beans>
6.测试
package junit.test; import org.junit.Test; import org.springframework.context.ApplicationContext; import org.springframework.context.support.ClassPathXmlApplicationContext; import com.person.service.PersonService; public class SpringTest { @Test //测试 spring的 初始化 public void init(){ ApplicationContext ctx=new ClassPathXmlApplicationContext("classpath:applicationContext.xml"); //方法一 获取服务层对象 PersonService personService=(PersonService)ctx.getBean("personService"); //方法二 PersonService personService1=ctx.getBean("personService",PersonService.class); personService.save(); personService1.save(); } }
//如果能在控制台 打印出 "我就是save方法!" 恭喜成功!
7.看了上面这么多 那么spring到底怎么初始化 和 管理的 我们的bean呢? 我们自己来模拟写一个 spring的 init 初始工作 (使用 dom4j 来读取配置文件 -->使用 反射来创建对象)
8.首先加入 dom4j-1.6.1.jar 和 jaxen.jar(dom4j需要的一个jar)
9.定义隐射spring配置文件bean 的类
package junit.test; /** * 定义 保存 spring配置文件中的bean对象 * @author Bin */ public class BeanDefinition { private String id; //对应 spring配置文件中的id private String className; //对应 spring配置文件中的class //get set // 构造方法 }
10.定义 我们自己的 读取spring配置文件中的 ClassPathXmlApplicationContext 类
package junit.test; import java.net.URL; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; import org.dom4j.Document; import org.dom4j.Element; import org.dom4j.XPath; import org.dom4j.io.SAXReader; import com.sun.xml.internal.fastinfoset.stax.events.Util; /* * 来模拟spring 的工作 */ public class MySpringClassPathXmlApplicationContext { //保存 配置文件中的 bean 的信息 private List<BeanDefinition> beandefines=new ArrayList<BeanDefinition>(); //保存初始化 后的对象 private Map<String,Object> sigletons=new HashMap<String,Object>(); public MySpringClassPathXmlApplicationContext(String fileName) { this.readXml(fileName); this.instanceBean(); } /**================== * 读取xml配置文件 * ================== * @author Bin * @param fileName */ private void readXml(String fileName) { SAXReader saxReader=new SAXReader(); Document doucment=null; try { URL xmlPath=this.getClass().getClassLoader().getResource(fileName); doucment=saxReader.read(xmlPath); Map<String,String> nsMap=new HashMap<String,String>(); //给spring配置文件的命名空间 一个别名 ns nsMap.put("ns","http://www.springframework.org/schema/beans"); //加入命名空间 xmlns: spring配置文件中的 XPath xsub=doucment.createXPath("//ns:beans/ns:bean"); //创建 beans/bean 查询路径 xsub.setNamespaceURIs(nsMap); //设置命名空间 List<Element> beans=xsub.selectNodes(doucment); //获取文档下的所有bean节点 for (Element element : beans) { String id=element.attributeValue("id"); //获取 id的属性值 String clazz=element.attributeValue("class"); // 获取 class属性 //类是 spring中的 : org.springframework.beans.factory.config.BeanDefinition; BeanDefinition beandefine=new BeanDefinition(id,clazz); beandefines.add(beandefine); } } catch (Exception e) { e.printStackTrace(); } } /**=================================== * 完成Bean 的实例化 * =================================== * @author Bin */ private void instanceBean() { for (BeanDefinition beandefine : beandefines) { try { if(!Util.isEmptyString(beandefine.getClassName())) sigletons.put(beandefine.getId(), Class.forName(beandefine.getClassName().trim()).newInstance()); }catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); } } } /**======================= * 获取bean * ===================== * @param beanName * @return */ public Object getBean(String beanName){ return this.sigletons.get(beanName); } }
11.好啦 我们来测试吧
@Test //测试 自定义的spring 模拟器 public void testMySpring(){ MySpringClassPathXmlApplicationContext ctx=new MySpringClassPathXmlApplicationContext("applicationContext.xml"); //方法一 获取服务层对象 PersonService personService=(PersonService)ctx.getBean("personService"); personService.save(); }
//如果 同样看到 "我就是save方法!" 我想 你应该对spring有所了解了吧?? 嘻嘻
//睡觉啦 呵呵 88
发表评论
-
spring-session 中的坑
2017-07-06 15:34 9996spring-session 配置 依赖 gradle ... -
Spring AspectJ Aop Annotation
2017-03-29 17:08 709import org.aspectj.lang.Proce ... -
spring 第13天 使用@scheduled注解执行定时任务
2015-01-06 23:11 54085我们使用spring的注解 @Scheduled 执行定时任务 ... -
Spring 第12天,事务传播属性和 隔离级别
2014-09-28 00:36 8171 事务的传播属性(Propagation) 1) REQ ... -
spring 第11天 quartz任务调度
2014-08-24 13:59 1146Quartz是一个强大的企业级任务调度框架,Spring中继承 ... -
spring 第10 天 AOP 面向切面
2014-08-21 00:08 1753AOP(Aspect Orient Programming ... -
spring 第9天 Resurce 资源访问
2014-08-17 22:20 1868Spring Resource接口 spring提供的Reso ... -
spring 第8天 Spring 注解
2014-08-17 15:33 1472spring注解 @Component:标注一个普通的sp ... -
spring 第7天 Bean,BeanFactory处理器,配置器
2014-08-16 21:46 1238spring 两种后处理器 第一种,Bean 后处理器 对容器 ... -
spring 第6天SpEL,P命名空间,Util Schema
2014-08-13 22:52 1316使用p名称空间配置属性 ... -
spring 第5天不同作用域的bean,注入Field,方法返回值
2014-08-11 22:31 2114协调作用域不同步的bean 问题是;当一个singleton的 ... -
spring 第4天bean继承,init,destory-method
2014-08-10 17:54 1654深入理解Spring容器中的b ... -
spring 第3天使用java类和XML配置bean
2014-08-09 16:51 1506下面采用java类来配置bean,前面都采用xml进行配置be ... -
spring 第2天,bean作用域,自动注入集合
2014-08-06 22:16 1933sping容器中的Bean <!---beans的全 ... -
spring 第1天 IOC,DI,国际化,容器事件
2014-08-04 21:27 13951.构造注入(就是使用 构 ... -
SpringMVC 注解 和非注解
2014-01-26 10:29 18018首先看看非注解的项目结构 在web.xml文件 配置spr ... -
详解spring 每个jar的作用
2013-11-19 23:54 3912spring.jar 是包含有完整 ... -
Spring配置Hibernate事务
2013-11-10 13:45 1218为了保证数据的一致性,在编程的时候往往需要引入事务这个概念。事 ... -
Spring 中引用Properties文件
2013-08-29 14:39 10657其中部分配置信息(邮件发送相关): #邮件发送的相关配置 ... -
Spring IOC控制反转 依赖注入DI
2012-12-15 09:37 2330目录 1.使用IOC控制反转 中的DI依赖注入 手工注入 ...
相关推荐
这个“spring简单应用jar包”集合对于初学者来说是一个宝贵的资源,它包含了运行一个基本Spring应用程序所需的核心组件。 首先,我们要关注的是"log4j.jar",这是一个广泛使用的日志记录库。在Java开发中,日志记录...
在"Spring简单应用"中,我们通常会涉及以下几个关键点: 1. **IoC容器**:Spring的IoC容器是整个框架的中心,负责管理对象的生命周期和对象间的依赖关系。我们可以通过XML配置文件或Java配置类来定义这些关系。 2....
Spring框架是中国最流行的Java企业级应用开发框架之一,它的出现极大地简化了Java应用程序的构建,尤其是在服务端。Spring的核心设计理念是依赖注入(Dependency Injection,DI)和面向切面编程(Aspect-Oriented ...
在这个"一个简单的spring的应用"项目中,我们将探讨如何搭建一个基础的Spring环境并进行单元测试。 首先,我们需要理解Spring的核心概念——依赖注入(Dependency Injection,简称DI)。DI允许我们解耦组件间的依赖...
例如,在提供的代码清单 1 中,可以看到如何定义一个简单的 Spring Boot 应用的 POM 文件,其中指定了 Spring Boot 的版本和 `spring-boot-starter-web` 依赖。 通过这种方式,Spring Boot 实现了快速构建和运行 ...
这个“一个简单的Spring应用例子”应该包含了一个基本的Spring配置和应用的构建结构,适合初学者理解和学习。 首先,我们来看一下这个压缩包中的文件: 1. `.classpath`:这是Eclipse IDE的一个项目配置文件,记录...
这个主题"Spring的简单应用"将引导我们探索Spring框架的基础知识和核心特性。 首先,Spring的核心是依赖注入(Dependency Injection,DI)。依赖注入允许开发者在运行时将对象之间的依赖关系解耦,使得代码更加灵活...
在本教程中,我们将探讨如何使用Spring Boot和Vue.js构建一个简单的Web应用程序。Spring Boot是Java领域的一个流行框架,用于简化Spring应用的初始搭建以及开发过程。Vue.js则是一款轻量级的前端JavaScript框架,以...
主要是对java spring,spring mvc等知识链条学习归纳,实现了前端jsp和后端spring交互的简单mvc应用,项目已经实现拦截器、过滤器和监听器,数据CURD简单操作,附mysql包。环境:开发工具-idea,mysql + java13 + ...
在本示例中,我们将深入探讨Spring MVC的基本概念、配置以及如何创建一个简单的应用程序。 1. **Spring MVC 概述** Spring MVC 是 Spring 框架的一部分,它简化了开发和测试Web应用程序的过程。通过分离业务逻辑、...
Spring是一个开放源代码的设计层面框架,他解决的是业务逻辑层和其他各层的松耦合问题,因此它将面向接口的编程思想贯穿整个系统应用。Spring是于2003 年兴起的一个轻量级的Java 开发框架,由Rod Johnson创建。简单...
在压缩包文件 `spring-boot` 中,可能包含了创建简单 Spring Boot 应用的源代码,包括主配置类、控制器、实体类和配置文件等。通过分析这些示例,你可以更好地理解 Spring Boot 如何工作,以及如何将这些概念应用到...
《Spring 4.x 企业开发应用实战》这本书深入探讨了Spring框架在企业级应用程序开发中的应用,涵盖了Spring 4.x版本的重要特性和最佳实践。Spring作为Java生态系统中最受欢迎的轻量级框架,它提供了全面的解决方案,...
在这个名为"spring一些简单的例子"的压缩包中,你可能会找到一系列帮助初学者理解并掌握Spring框架基础知识的代码示例。以下是一些相关的知识点和详细说明: 1. **依赖注入(Dependency Injection)**:Spring的...
### 生成一个简单的Spring Boot应用程序 #### 概述 本文档旨在指导读者通过具体步骤创建一个简单的Spring Boot Web应用程序——“Hello World!”示例。这个示例应用将帮助理解Spring Boot的一些核心特性,如自动...
Spring Boot 是一个由 Pivotal 团队开发的框架,旨在简化 Spring 应用程序的初始搭建以及开发过程。它集成了大量常用的第三方库配置,如 JDBC、MongoDB、JPA、RabbitMQ、Quartz 等,使得开发者能够快速地创建一个...
5. **Spring Boot CLI**:命令行接口允许快速创建和运行Spring应用程序,通过编写简单的Groovy脚本。 6. **YAML配置**:除了传统的Java properties配置文件外,Spring Boot还支持使用YAML格式的配置文件,这种格式...
Spring 提供了一个全面的编程和配置模型,使得开发 Java 应用程序变得更加简单。这个"spring 的简单例子工程"是为了帮助初学者快速理解和入门 Spring 框架。 **数据库连接与Spring** 在 Spring 中,数据库连接通常...
"spring简单示例"可能包含了一些基本的Spring配置和使用案例,让我们来深入探讨一下Spring框架的关键概念和功能。 1. **依赖注入**:Spring框架的核心特性之一是依赖注入,它允许开发者在运行时动态地将依赖关系...
在本主题中,我们将深入探讨Spring框架的Web应用程序开发,特别是如何通过简单的控制器来实现页面间的跳转。《Spring4 In Action》是Spring框架的经典学习资料,第五版的2.2章节聚焦于Spring MVC,它是Spring框架...