`
robinsoncrusoe
  • 浏览: 749011 次
  • 性别: Icon_minigender_2
  • 来自: 深圳
社区版块
存档分类
最新评论

Spring--最基础的示例

    博客分类:
  • JAVA
阅读更多
Spring温习(1)--最基础的示例
文章分类:Java编程

从现在开始,我将从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;"><?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> 

<?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:context="http://www.springframework.org/schema/context"
xmlns:tx="http://www.springframework.org/schema/tx"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd
http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-2.5.xsd
http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-2.5.xsd">

</beans>

UserDAO.java
Java代码

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

package com.test.domain;

public interface UserDAO {
  void say();
}

UserDAOImpl.java
Java代码

   1. <span style="font-size: medium;">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> 
  11. </span> 

package com.test.domain;

public class UserDAOImpl implements UserDAO {

@Override
public void say() {
      System.out.println("i can speak");
}

}

applictionContext.xml
Xml代码

   1. <span style="font-size: medium;"><?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> 
   7. </span> 

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN 2.0//EN" "http://www.springframework.org/dtd/spring-beans-2.0.dtd">

<beans>
<bean  id="userDAO" class="com.test.domain.UserDAOImpl"/>
</beans>

测试类


Java代码

   1. <span style="font-size: medium;">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> 
  19. </span> 

package com.test.domain;

import org.junit.Test;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
import org.springframework.web.context.WebApplicationContext;
import org.springframework.web.context.support.WebApplicationContextUtils;

public class MyTest {

@Test
public void testUser(){
         ApplicationContext context=new ClassPathXmlApplicationContext("applicationContext.xml");
         UserDAO dao=(UserDAO)context.getBean("userDAO");
         dao.say();
}

}

测试结果: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;"><?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> 

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN 2.0//EN" "http://www.springframework.org/dtd/spring-beans-2.0.dtd">

<beans>
<!--Spring的实例化Bean有三种方式:-->
        <!-- 使用类构造器直接实例化 -->    
        <bean  id="userDAO" class="com.test.domain.UserDAOImpl"/>
        <!-- 使用静态工厂的方法实例化 --> 
        <bean id="userDAO1" class="com.test.domain.BeanFactory" factory-method="UserDAOService" /> 
        <!-- 使用实例工厂方法实例化 --> 
        <bean id="factory" class="com.test.domain.BeanFactory" /> 
        <bean id="userDAO2" factory-bean="factory" factory-method="getUserDAOService" />
</beans>



BeanFactory.java
Java代码

   1. <span style="font-size: medium;">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 style="font-size: medium;"> 
  17. </span> 

package com.test.domain;

public class BeanFactory {

    //使用静态工厂的方法实例化使用  
    public static UserDAO UserDAOService()  
    {  
        return new UserDAOImpl();  
    }  
      
    public UserDAO getUserDAOService()  
    {  
        return new UserDAOImpl();  
    }  

}

测试类
Java代码

   1. <span style="font-size: medium;">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> 

package com.test.domain;

import org.junit.Test;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
import org.springframework.web.context.WebApplicationContext;
import org.springframework.web.context.support.WebApplicationContextUtils;

public class MyTest {

@Test
public void testUser(){
         ApplicationContext context=new ClassPathXmlApplicationContext("applicationContext.xml");
         UserDAO dao=(UserDAO)context.getBean("userDAO");
         dao.say();
         UserDAO dao2=(UserDAO)context.getBean("userDAO2");
         dao2.say();
         UserDAO dao3=(UserDAO)context.getBean("userDAO3");
         dao3.say();
}

}



测试结果

i can speak

i can speak

i can speak


转自:http://javacrazyer.iteye.com/blog/794916
分享到:
评论

相关推荐

    spring-boot spring-security-oauth2 完整demo

    首先,Spring Boot是基于Spring框架的快速开发工具,它简化了Spring应用的初始搭建以及配置过程,使得开发者可以专注于业务逻辑,而无需过多关注基础设施的配置。通过在项目中引入Spring Boot,我们可以快速创建一个...

    spring-boot-samples-master

    1. **基础设置**:包括最基本的Spring Boot应用启动,如"spring-boot-sample-basic",它展示了如何创建一个简单的"Hello, World!"应用程序,解释了Spring Boot的启动类和自动配置机制。 2. **Web应用**:"spring-...

    Spring微服务示例-spring-cloud-example.zip

    本篇文章将深入探讨以"Spring微服务示例-spring-cloud-example"为例的Spring Cloud应用,旨在帮助读者理解并掌握Spring Cloud的核心概念和技术。 首先,"spring-cloud-example"是一个典型的Spring Cloud项目实例,...

    spring-mybatis-spring-1.3.2.tar.gz

    《SSM框架详解:基于spring-mybatis-spring...总结,"spring-mybatis-spring-1.3.2.tar.gz"是一个典型的SSM框架示例,通过学习和实践,我们可以掌握SSM框架的核心原理和使用技巧,为开发复杂的企业级应用打下坚实基础。

    spring-cloud.zip

    这个"spring-cloud.zip"的Demo充分展示了Spring Cloud如何构建一个完整的微服务架构,通过集成各种组件,实现了服务注册、配置管理、容错保护、API管理和服务调用等功能,为现代云原生应用提供了坚实的基础。...

    spring-framework-4.3.6.RELEASE-dist.zip

    1. **Spring Core Container**:这是Spring框架的基础,包括Core、 Beans、Context和SpEL(Spring Expression Language)模块。Core模块提供了基本的IoC(Inversion of Control)容器,管理对象的生命周期和依赖关系...

    Spring-websocket-master.zip

    这个"Spring-websocket-master.zip"压缩包提供了一个基于Spring框架的WebSocket实时通信的示例项目,可以帮助开发者理解并实现WebSocket在实际中的应用。 首先,Spring WebSocket是Spring Framework的一部分,它...

    spring-boot-demo

    首先,"spring-boot-demo"项目是一个简单的小型示例,通常包含了一个基础的Spring Boot应用结构。这样的项目有助于我们理解Spring Boot如何快速构建一个功能完整的应用。项目的名称暗示了我们将接触到Spring Boot的...

    spring-framework-4.3.29.RELEASE.zip

    Spring Framework 4.3.29.RELEASE作为官方原版的完整包,不仅提供了一个强大且稳定的开发平台,还为开发者提供了丰富的文档和示例,使得学习和使用Spring变得更加容易。无论你是初学者还是经验丰富的开发者,这个...

    spring-kafka 整合官方文档

    Spring-Kafka提供了一个抽象的ProducerTemplate,它是KafkaTemplate的基础,用于发送消息。你可以使用send()方法发送单个消息,或者使用multiSend()方法批量发送消息。同时,可以设置消息的关键字(key)和值...

    spring-cloud-demo-master.zip

    本篇文章将围绕"spring-cloud-demo-master.zip"这个入门项目,深入解析其中的关键组件——Eureka、Zuul、JPA、Hystrix以及File-Upload,旨在帮助读者快速掌握Spring Cloud的基础应用。 一、Eureka:服务注册与发现 ...

    spring-framework-4.3.8.RELEASE官方完整包加官方文档

    Spring Framework是Java开发中最广泛使用的轻量级框架之一,它通过依赖注入(Dependency Injection, DI)和面向切面编程(Aspect-Oriented Programming, AOP)简化了应用的开发过程。4.3.8.RELEASE版本修复了一些...

    mybatis-spring-1.1.1-bundle

    除了基本的Mapper注入,MyBatis-Spring还支持Spring的AOP切面编程,可以实现如缓存、日志等扩展功能。此外,对于多数据源的支持也是其一大亮点,通过配置不同的SqlSessionFactory,可以轻松处理多个数据库的访问。 ...

    activiti-spring-examples下载

    例如,“spring-simple”示例,它演示了最基础的配置,包括配置Activiti的引擎bean、启动流程实例以及处理用户任务。这里,Spring的依赖注入(Dependency Injection)特性使得Activiti与应用其他组件的交互变得简单...

    spring-5.2.3.RELEASE-dist.zip

    要深入了解Spring 5.2.3.RELEASE,可以参考官方文档、教程和示例代码。此外,社区的讨论和开源项目也是提升技能的好途径。随着技术的不断演进,持续学习和实践是成为Spring专家的关键。 总结,Spring 5.2.3.RELEASE...

    Spring-WS示例

    **Spring-WS 示例详解** Spring-WS 是一个基于 Java 的轻量级 Web 服务框架,它专注于 SOAP(Simple Object Access Protocol)消息处理。这个框架使开发者能够创建和消费符合 W3C 标准的 SOAP 消息,同时利用 ...

    spring-dist

    1. **Spring Core**:提供了DI和AOP的基础,以及bean工厂和应用上下文,这是整个框架的基础。 2. **Spring JDBC**:简化了JDBC的使用,提供了事务管理,使数据库操作更易管理。 3. **Spring ORM**:支持多种ORM框架...

    spring-framework-4.0.0.RELEASE官方完整包

    其中,用户指南介绍了如何开始使用Spring,包括安装、配置和基本用法;参考手册则深入到各个模块的细节,提供了详细的API解释和示例代码;API文档则是开发者查阅具体类和接口的工具。 四、应用实践 在实际项目中,...

    spring-boot-starter-mybatis-spring-boot-1.3.3.tar.gz

    以上就是Spring Boot集成MyBatis的基础知识,包括依赖引入、配置、Mapper的使用,以及版本的选择和下载。通过这些步骤,你可以轻松地在Spring Boot项目中构建起MyBatis的数据访问层,实现高效、灵活的数据库操作。

Global site tag (gtag.js) - Google Analytics