Spring笔记之一(初探Spring)

转载 2007年09月25日 14:40:00

转贴处 http://www.blogjava.net/improviser/archive/2007/09/24/147650.html  

初探Spring程序,程序如下:

    

 1 BeanNaming.java
 2     package spring.beantest;
 3 
 4     import org.springframework.beans.factory.BeanFactory;
 5     import org.springframework.beans.factory.xml.XmlBeanFactory;
 6     import org.springframework.core.io.FileSystemResource;
 7 
 8     public class BeanNaming {
 9     public static void main(String []args)
10     {
11         BeanFactory factory = new XmlBeanFactory(new FileSystemResource("src/applicationContext.xml"));
12     
13         String s1 = (String)factory.getBean("name1");
14         String s2 = (String)factory.getBean("name2");
15         String s3 = (String)factory.getBean("name3");
16         String s4 = (String)factory.getBean("name4");
17         
18         System.out.println((s1 == s2));
19         System.out.println((s2 == s3));
20         System.out.println((s3 == s4));
21         
22         String[] x = factory.getAliases("name3");
23         for(String str:x)
24         {
25             System.out.println(str);
26         }
27         
28       }
29     }
30  
31       applicationContext.xml
32      <?xml version="1.0" encoding="UTF-8"?>
33      <!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd">
34      <beans>
35      <!-- aliasing examples -->
36      <bean id="name1" name="name2,name3,name4" class="java.lang.String"/>
37      </beans>

    输出结果为:
    true
    true
    true
    name1
    name4
    name2

   
    可以看出,使用中id属性和name属性几乎没有任何区别。调用beanfactory.getAliases(string)的方法时,传入的参数可以是任意一个bean名字,输出的别名则是除去作为参数本身之外的所有 bean名。
  

   在写 applicationContxt.xml文件时,如果没有定义<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd">,则会抛出Cannot find the declaration of element 'beans' 异常。
  
       以上使用BeanFactory对配置文件进行加载,BeanFactory,是根据配置文件负责创建Bean的实例,并负责Bean的生命周期的管理- --,包括Bean的生成与销毁、Bean的创建方式的识别(是否为singleton)、Bean的各个属性的设定、依赖关系的建立等。
    ApplicationContext接口,提供了国际化、事件处理及beans在context中的自查能力。它也可创建具有层次结构context环境,将bean的作用域和可访问区域限制在应用程序的一个特定部分中。下面演示如何使用ApplicationContext接口。


   
 1 <!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-    beans.dtd">
 2     <beans>
 3     <bean id="bean_1" class="BeanTest"/>
 4     <bean id="bean_2" class="BeanTest"/>
 5     </beans>
 6 
 7 
 8     public class BeanTest {
 9     public void test() {
10         System.out.println("test..");
11     }
12    }
13 
14 
15    import org.springframework.context.ApplicationContext;
16    import org.springframework.context.support.FileSystemXmlApplicationContext;
17 
18    public class BeanNameExample {
19 
20     public static void main(String[] args) {
21         ApplicationContext ctx = new FileSystemXmlApplicationContext(
22         "build/applicationContext.xml");
23         
24         BeanTest beanOne = (BeanTest)ctx.getBean("bean_1");
25         BeanTest beanTwo = (BeanTest)ctx.getBean("bean_2");
26         
27         beanOne.test();
28         beanTwo.test();
29       }
30    }
31 
   综上,ApplicationContext与BeanFactory的不同点
   BeanFactory提供了针对JavaBean的管理功能,而ApplicationContext提供了一个更为框架化的实现(从上面的示例中可以看出,BeanFactory的使用方式更加类似一个API,而非Framework style)。ApplicationContext覆盖了BeanFactory的所有功能,并提供了更多的特性。此外, ApplicationContext为与现有应用框架相整合,提供了更为开放式的实现(如对于Web应用,我们可以在web.xml中对 ApplicationContext进行配置)。
  

相关文章推荐

Spring AOP初探(二)

作者:谢新亭 链接:https://www.zhihu.com/question/23641679/answer/105442105 来源:知乎 著作权归作者所有。商业转载请联系作者获得授权,非...

spring-boot研究一:springboot初探,mysql+jdbc的一个示例

spring-boot一个小例子,数据库用mysql,orm采用jdbc

Spring-Cloud 初探(序)

介绍 Spring Cloud 为开发者提供了在分布式系统(如配置管理、服务发现、断路器、智能路由、微代理、控制总线、一次性 Token、全局锁、决策竞选、分布式会话和集群状态)环境下,用于构建一些常...

spring boot初探(二)——springboot配置log4j

spring-boot-starter中默认依赖了spring-boot-starter-logging而他实现的日志组件是Lockback。 事实上官方文档已经讲的非常清楚了,并且提供了两种日...

spring boot初探(一)——使用springboot搭建web服务

spring boot搭建简单的web服务早就听说过springboot快速构建服务的大名了,可惜一直不敢去花时间尝试,而且最近老是干运维的工作都快忘了本职java开发了。刚好这回公司要我做一个纯前端...

Spring 初探(十四)(核心类DispacherServlet及Content Negotiation)

开始对于Spring Web MVC框架展开介绍 行文结构采用缩进来描述(Python) Spring Web model-view-controller(MVC) 框架围绕DispatcherSer...

spring security3.x学习(3)_初探过滤器机制和auto-config用法

我们了解一下验证的过程 、首先用户发起一个请求、 这时候,认证管理器进行拦截,验证用户发起请求时的一些凭证信息,未通过验证信息审核的那么返回给用户,通过审核的,那么继续进行请求访问,访问页面之前,会被...

Spring Data JPA初探(开发与配置)

1.开发准备 1.1 首先从官方下载例程,官方提拱了好多的例子借我们使用,它的下载地址为:   https://github.com/ttrelle/spring-data-examples (...

spring security3.x学习(20)_初探authorize标签和第四个例子

第四个例子也就是spring security3那本书中的第五章的例子。 csdn下载:http://download.csdn.net/detail/dulei294948/6295933(包含完...

初探spring applicationContext在web容器中加载过程

整理chrome同步收藏夹,不太常用的就写入blog,以便日后查看。   首先从WEB.XML入手==>web.xml12345678910111213141516171819202122232425...
  • lrwin
  • lrwin
  • 2011-06-12 00:44
  • 594
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)