Spring温习(1)--最基础的示例

从现在开始,我将从Spring为起点,逐步复习几大框架各方面的知识,以便今后查看使用

第一各Spring示例

必须包:spring-framework-2.5.6\dist\spring.jar

         spring-framework-2.5.6\lib\jakarta-commons\common-logging.jar

为了方便测试还需要:spring-framework-2.5.6\lib\junit\junit4.4.jar

第一步,先在spring资源包找到:spring-framework-2.5.6\samples\jpetstore\attributes\WEB-INF\applictionContext.xml

找到后将多余的删除,留下最基本的

Java代码   收藏代码
  1. <span style="font-size: medium;"><span style="font-size: large;"><?xml version="1.0" encoding="UTF-8"?>  
  2. <beans xmlns="http://www.springframework.org/schema/beans"  
  3.     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"  
  4.     xmlns:context="http://www.springframework.org/schema/context"  
  5.     xmlns:tx="http://www.springframework.org/schema/tx"  
  6.     xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd  
  7.                 http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-2.5.xsd  
  8.                 http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-2.5.xsd">  
  9.   
  10. </beans></span></span>  

 UserDAO.java

Java代码   收藏代码
  1. <span style="font-size: medium;"><span style="font-size: large;">package com.test.domain;  
  2.   
  3. public interface UserDAO {  
  4.   void say();  
  5. }</span></span><span style="font-size: large;">  
  6. </span>  

 UserDAOImpl.java

Java代码   收藏代码
  1. <span style="font-size: medium;"><span style="font-size: large;">package com.test.domain;  
  2.   
  3. public class UserDAOImpl implements UserDAO {  
  4.   
  5.     @Override  
  6.     public void say() {  
  7.       System.out.println("i can speak");  
  8.     }  
  9.   
  10. }</span></span><span style="font-size: large;">  
  11. </span>  

applictionContext.xml

Xml代码   收藏代码
  1. <span style="font-size: medium;"><span style="font-size: large;"><?xml version="1.0" encoding="UTF-8"?>  
  2. <!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN 2.0//EN" "http://www.springframework.org/dtd/spring-beans-2.0.dtd">  
  3.   
  4. <beans>  
  5. <bean  id="userDAO" class="com.test.domain.UserDAOImpl"/>  
  6. </beans></span></span><span style="font-size: large;">  
  7. </span>  

 测试类

 

Java代码   收藏代码
  1. <span style="font-size: medium;"><span style="font-size: large;">package com.test.domain;  
  2.   
  3. import org.junit.Test;  
  4. import org.springframework.context.ApplicationContext;  
  5. import org.springframework.context.support.ClassPathXmlApplicationContext;  
  6. import org.springframework.web.context.WebApplicationContext;  
  7. import org.springframework.web.context.support.WebApplicationContextUtils;  
  8.   
  9. public class MyTest {  
  10.       
  11.     @Test  
  12.     public void testUser(){  
  13.              ApplicationContext context=new ClassPathXmlApplicationContext("applicationContext.xml");  
  14.              UserDAO dao=(UserDAO)context.getBean("userDAO");  
  15.              dao.say();  
  16.     }  
  17.   
  18. }</span></span><span style="font-size: large;">  
  19. </span>  

 测试结果:i can speak

 

Spring加载XML配置文件的方式

 spring 中加载xml配置文件的方式,好像有3种, xml是最常见的spring 应用系统配置源。Spring中的几种容器都支持使用xml装配bean,包括:     XmlBeanFactory ,     ClassPathXmlApplicationContext ,     FileSystemXmlApplicationContext ,     XmlWebApplicationContext

一、XmlBeanFactory 引用资源     Resource resource = new ClassPathResource("appcontext.xml");     BeanFactory factory = new XmlBeanFactory(resource); 二、ClassPathXmlApplicationContext  编译路径     1)ApplicationContext factory=new ClassPathXmlApplicationContext("classpath:appcontext.xml");     2)ApplicationContext factory=new ClassPathXmlApplicationContext("appcontext.xml");   // src目录下的     3)ApplicationContext factory=new ClassPathXmlApplicationContext("conf/appcontext.xml");   // src/conf 目录下的     4)ApplicationContext factory=new ClassPathXmlApplicationContext("file:G:/Test/src/appcontext.xml");

     5)String[] locations = {"bean1.xml", "bean2.xml", "bean3.xml"};       ApplicationContext ctx = new ClassPathXmlApplication(locations);

三 、 用文件系统的路径    1) ApplicationContext factory=new FileSystemXmlApplicationContext("src/appcontext.xml");     //使用了  classpath:  前缀,作为标志,  这样,FileSystemXmlApplicationContext 也能够读入classpath下的相对路径     2)ApplicationContext factory=new FileSystemXmlApplicationContext("classpath:appcontext.xml");     3)ApplicationContext factory=new FileSystemXmlApplicationContext("file:G:/Test/src/appcontext.xml");     4)ApplicationContext factory=new FileSystemXmlApplicationContext("G:/Test/src/appcontext.xml");

    5)String[] locations = {"bean1.xml", "bean2.xml", "bean3.xml"};         ApplicationContext ctx = new FileSystemXmlApplicationContext(locations );

四、XmlWebApplicationContext   是专为Web工程定制的。     ServletContext servletContext = request.getSession().getServletContext();     ApplicationContext ctx = WebApplicationContextUtils.getWebApplicationContext(servletContext );

注:其中FileSystemXmlApplicationContext和ClassPathXmlApplicationContext与BeanFactory的xml文件定位方式一样是基于路径的

 

 

Spring的实例化Bean有三种方式:

 使用类构造器直接实例化

 使用静态工厂的方法实例化

 使用实例工厂方法实例化

具体对应配置如

Xml代码   收藏代码
  1. <span style="font-size: medium;"><span style="font-size: large;"><?xml version="1.0" encoding="UTF-8"?>  
  2. <!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN 2.0//EN" "http://www.springframework.org/dtd/spring-beans-2.0.dtd">  
  3.   
  4. <beans>  
  5. <!--Spring的实例化Bean有三种方式:-->  
  6.         <!-- 使用类构造器直接实例化 -->       
  7.         <bean  id="userDAO" class="com.test.domain.UserDAOImpl"/>  
  8.         <!-- 使用静态工厂的方法实例化 -->    
  9.         <bean id="userDAO1" class="com.test.domain.BeanFactory" factory-method="UserDAOService" />    
  10.         <!-- 使用实例工厂方法实例化 -->    
  11.         <bean id="factory" class="com.test.domain.BeanFactory" />    
  12.         <bean id="userDAO2" factory-bean="factory" factory-method="getUserDAOService" />   
  13. </beans>  
  14. </span></span>  

 

 BeanFactory.java

Java代码   收藏代码
  1. <span style="font-size: medium;"><span style="font-size: large;">package com.test.domain;  
  2.   
  3. public class BeanFactory {  
  4.       
  5.         //使用静态工厂的方法实例化使用     
  6.         public static UserDAO UserDAOService()     
  7.         {     
  8.             return new UserDAOImpl();     
  9.         }     
  10.              
  11.         public UserDAO getUserDAOService()     
  12.         {     
  13.             return new UserDAOImpl();     
  14.         }     
  15.       
  16. }</span></span><span style="font-size: medium;"><span style="font-size: large;">  
  17. </span></span>  

 测试类

Java代码   收藏代码
  1. <span style="font-size: medium;"><span style="font-size: large;">package com.test.domain;  
  2.   
  3. import org.junit.Test;  
  4. import org.springframework.context.ApplicationContext;  
  5. import org.springframework.context.support.ClassPathXmlApplicationContext;  
  6. import org.springframework.web.context.WebApplicationContext;  
  7. import org.springframework.web.context.support.WebApplicationContextUtils;  
  8.   
  9. public class MyTest {  
  10.       
  11.     @Test  
  12.     public void testUser(){  
  13.              ApplicationContext context=new ClassPathXmlApplicationContext("applicationContext.xml");  
  14.              UserDAO dao=(UserDAO)context.getBean("userDAO");  
  15.              dao.say();  
  16.              UserDAO dao2=(UserDAO)context.getBean("userDAO2");  
  17.              dao2.say();  
  18.              UserDAO dao3=(UserDAO)context.getBean("userDAO3");  
  19.              dao3.say();  
  20.     }  
  21.   
  22. }  
  23. </span></span>  

 

测试结果

i can speak

i can speak

i can speak

 

 

PS:Spring的配置文件引入方式

1)传统配置多个文件,applicationContext-xx.xml,applicationContext-yy.xml,applicatonContext-zz.xml

   那么在web.xml中引入这么多文件可以是这样写

 

Xml代码   收藏代码
  1. <span style="font-size: large;"<context-param>  
  2.   <param-name>contextConfigLocation</param-name>  
  3.   <param-value>classpath:/META-INF/spring/applicationContext-*.xml</param-value>  
  4.  </context-param></span>  

 2)第二种方式,也是上面那么三个配置文件,那么我们可以将-yy.xml和-zz.xml都配置在-xx.xml中去,然后再在web.xml中单独配置-xx.xml就可以

     applicationContext-xx.xml

 

Java代码   收藏代码
  1. <span style="font-size: large;"><?xml version="1.0" encoding="UTF-8"?>  
  2. <beans xmlns="http://www.springframework.org/schema/beans"  
  3.     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:p="http://www.springframework.org/schema/p"  
  4.     xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd">  
  5.   
  6.     <import resource="classpath:/META-INF/spring/applicationContext-yy.xml" />  
  7.       
  8.     <import resource="classpath:/META-INF/spring/applicationContext-zz.xml" />  
  9.   
  10. </beans></span>  

 那么在web.xml中应该是

 

Xml代码   收藏代码
  1. <span style="font-size: large;"><context-param>  
  2.   <param-name>contextConfigLocation</param-name>  
  3.   <param-value>classpath*:/META-INF/spring/applicationContext-xx.xml</param-value>  
  4.  </context-param></span>  

转载于:https://www.cnblogs.com/wzhanke/p/4561952.html

一个简单的MVC实例 一个简单的MVC实例 利用jsp+javabean+Servlet模拟一个用户登陆,实现对数据库的增删改查。 1,创建数据库 我使用的数据库是MySql,创建一个Iuser表,具体如下   2,创建一个javabean类,对表中的3个属性进行封装 User.java package cn.jw.vo;   public class User { private Stri 阅读详情

相关推荐

SpringBoot——Spring Security 框架_spring boot自带的安全框架(1)

还有兄弟不知道网络安全面试可以提前刷题吗?费时一周整理的160+网络安全面试题,金九银十,做网络安全面试里的显眼包!王岚嵚工程师面试题(附答案),只能帮兄弟们到这儿了!如果你能答对70%,找一个安全工作,问题不大。对于有1-3年工作经验,想要跳槽的朋友来说,也是很好的温习资料!【完整版领取方式在文末!!内容实在太多,不一一截图了。

m0_54903333的博客 1432

(一)spring基础

从现在开始,我将从Spring为起点,逐步复习几大框架各方面的知识,以便今后查看使用 第一各Spring示例 必须包:spring-framework-2.5.6\dist\spring.jar          spring-framework-2.5.6\lib\jakarta-commons\common-logging.jar 为了方便测试还需要:spring-framework-

我的地盘我做主 560

FreeRTOS:卡在configASSERT( ( pxQueue ) )问题的解决

FreeRTOS卡在configASSERT( ( pxQueue ) )问题的解决

qq_42007164的博客 9532

动态代理 测试代码

import java.lang.reflect.Constructor;import java.lang.reflect.InvocationHandler;import java.lang.reflect.Method;import java.lang.reflect.Proxy; public class FactoryDao { @SuppressWarnings("unchecked"...

蜗行窝素 195

模拟spring的注入和读取配置文件(ApplicationContext.xml)

转载自:http://blog.csdn.net/xiangsuixinsheng/article/details/6539324 场景:用户添加到数据库中 传统方式保存实例3个问题: 1/改动数据保存方式,如保存到XML文件中会造成程序变更 2/UserService无法在单实例情况下被重用,因为它的声明在test.java中 3/UserService引用其它资源

编程小强 1685

Spring Bean实例化的三种方式(在spring里面通过配置文件创建对象)

第一种  使用类的无参构造 &lt;bean  id="user" class="com.qianchen.bean.User"&gt;&lt;/bean&gt; 如果类中没有无参构造会出现异常 nosuchmethod public class Testioc { @Test public void testUser(){ //加载spring配置文件  创建对象 Applicat...

qq_18119793的博客 2072

Spring--基础示例

Spring温习(1)--基础示例 文章分类:Java编程 从现在开始,我将从Spring为起点,逐步复习几大框架各方面的知识,以便今后查看使用 第一各Spring示例 必须包:spring-framework-2.5.6\dist\spring.jar spring-framework-2.5.6\lib\jakarta-commons\commo...

iteye_9815的博客 108

Spring框架温习

Spring是一个全面的、企业应用开发一站式的解决方案,贯穿表现层、业务层、持久层。但是 Spring仍然可以和其他的框架无缝整合。轻量级、控制反转、面向切面、容器、框架集合。

qq_43038960的博客 533

spring框架温习—JdbcTemplate

JdbcTemplate是spring对JDBC的封装 (1)导入相关jar包        spring-jdbc-4.2.4.RELEASE.jar        spring-tx-4.2.4.RELEASE.jar 事务方面 (2)创建对象,设置数据库...

qq_42019139的博客 195

spring温习笔记()springboot工程基础

什么是springboot Spring Boot是一个便捷搭建 基于spring工程的脚手架;作用是帮助开发人员快速搭建大型的spring 项目。简化工程的配置,依赖管理;实现开发人员把时间都集中在业务开发上。

xueshanfeitian的博客 302

spring框架温习—IOC

IOC控制反转,降低代码之间的耦合度。把对象的创建交给spring来完成 实现方法 1.xml配置文件方式 2.注解方式 使用的技术:xml配置文件、dom4j解析xml文件、工厂设计模式、反射 实现原理 问题:Controller需要调用Service,不通过new(修改一个地方,需要找找找改改改)的方式怎么解决 public class DemoService(){ } public ...

qq_42019139的博客 196

spring框架温习—AOP

aop面向切面编程

qq_42019139的博客 217

温习 SPI 机制 (Java SPI 、Spring SPI、Dubbo SPI)

在遍历的时候,首先调用driversIterator.hasNext()方法,这里会搜索 classpath 下以及 jar 包中所有的META-INF/services目录下的java.sql.Driver文件,并找到文件中的实现类的名字,此时并没有实例化具体的实现类。Spring SPI 是一个 spring.factories 配置文件存放多个接口及对应的实现类,以接口全限定名作为key,实现类作为value来配置,多个实现类用逗号隔开,仅 spring.factories 一个配置文件。

weixin_55010563的博客 878

Java基础温习2

Java的命令模式 一种方法的执行有不同的结果,假设对数组进行处理; public interface Command{ void process(int[] target); } public class ProcessArray{ public void process(int[] target,Command com){ com.process(target); } } 内部类...

Mosqiote的博客 375

温习java:Struts与Spring集成

有一年多没写java了!快忘光了!现在手上有个项目,正好温习一下!与把过去的东东晒晒!第一篇当数struts与spring的集成了!开源框架发展的很快,现在struts 2也普遍了。这篇集成讲的是struts 1.29与spring 2.0。这种版本层次在现今的企业应用还是蛮多的。都是被证实为很稳定的。 struts集成spring的方式一:step 1:加载AppliationConte

xiaofanku的专栏 1409

Spring 温习笔记()spring AOP

AOP 相关概念 Spring 的AOP (Aspect Oriented Programming)实现底层就是对上面的动态代理的代码进行了封装,封装后我们只需要对需要关注的部分进行代码编写,并通过配置的方式完成指定目标的方法增强。 Target(目标对象):代理的目标对象 Proxy (代理):一个类被 AOP 织入增强后,就产生一个结果代理类 Joinpoint(连接点):所谓连接点是指那些被拦截到的点。在spring中,这些点指的是方法,因为spring只支持方法类型的连接点 Pointcut(切入

xueshanfeitian的博客 174

Spring Aop标签解析原理,了解或者温习一下

对于Spring Aop的实现,是非常复杂的,其实现过程主要包含xml标签的解析,切面表达式的解析,判断bean是否需要应用切面逻辑,以及使用Jdk代理或者是Cglib代理生成代理类。本文主要讲解Xml标签的解析的实现原理,在接下来几篇文章中,会依次对Spring Aop剩余的实现过程进行讲解。 关于Spring Aop的实现,由于其是使用自定义标签进行驱动的,因而读者朋友如果对Spring如何实现自定义标签比较熟悉,那么可以继续往下阅读。 ###1. Aop使用示例 首先我们声明了一个切面类如下: @As

doubututou的博客 110

微服务温习笔记

微服务温习笔记

LHRomance的博客 414

spring核心知识点都掌握了吗?这160道题可助你秋招一“必”之力,可以查缺补漏温习

虽名为"面试题",但一定要面试前才刷面试题嘛? 其实在日常工作中多刷一些面试题对自己也是挺有帮助的. 为此收集了160道Spring中高级面试题给大家学习,可查漏补缺!! ! 一、Spring 面试题(基础篇) 1.什么是 spring? 2.使用 Spring 框架的好处是什么? 3.Spring 由哪些模块组成? 4.核心容器(应用上下文) 模块。 5.BeanFactory – BeanFactory 实现举例。 6.XMLBeanFactory 7.解释 AOP 模

it小旭博客 713
上一篇: java 转义字符
下一篇: Web开发与设计之Google兵器谱-Web开发与设计利器
ane3232
博客等级 码龄11年 3粉丝 0原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值