Spring Bean和普通的javaBean没有什么区别,Spring 是个容器,只是为了通过bean.xml来管理(或者说映射)javaBean。

1、定义Spring Bean

 1 public class HelloBean {
 2     private String helloworld;
 3 
 4     public String getHelloworld() {
 5         return helloworld;
 6     }
 7 
 8     public void setHelloworld(String helloworld) {
 9         this.helloworld = helloworld;
10     }
11 
12     public void sayHello() {
13         System.out.println(helloworld);
14     }
15 }
2、定义 beans.xml

 

 1 <?xml version="1.0" encoding="UTF-8"?>
 2 <!DOCTYPE beans PUBLIC "-//SPRING/DTD BEAN/EN" 
 3     "http://www.springframework.org/dtd/spring-beans.dtd">
 4 
 5 <beans>
 6     <bean id="helloBean" class="com.spring.ioc.demo.HelloBean">
 7         <property name="helloworld">
 8             <value>Hello!World!</value>
 9         </property>
10     </bean>
11 </beans>
3、Bean 调用

Bean 调用我们最常用的是 new 对象,而Spring 则是通过 xml 来映射(反射、亦即Ioc)实现 Bean 的调用的,并且Spring 有多种映射的方法,如下:

 1 import org.springframework.beans.factory.BeanFactory;
 2 import org.springframework.beans.factory.xml.XmlBeanFactory;
 3 import org.springframework.context.ApplicationContext;
 4 import org.springframework.context.support.ClassPathXmlApplicationContext;
 5 import org.springframework.context.support.FileSystemXmlApplicationContext;
 6 import org.springframework.core.io.ClassPathResource;
 7 import org.springframework.core.io.FileSystemResource;
 8 import org.springframework.core.io.Resource;
 9 
10 public class HelloBeanTest {
11     public static void main(String[] args) {
12         /**
13          * 当普通 javaBean 使用
14          * */
15         HelloBean hellobean = new HelloBean();
16         hellobean.setHelloworld("Hello World!");
17         System.out.println("new对象直接调用");
18         hellobean.sayHello();
19 
20         /**
21          * 通过Spring访问JavaBean组件
22          * 1、BeanFactory 方式
23          * */
24         //1.1用 ClassPathResource 时 beans.xml 可以从classpath中读取XML文件
25         Resource resource = new ClassPathResource("beans.xml");
26         BeanFactory factory = new XmlBeanFactory(resource);
27         hellobean = (HelloBean) factory.getBean("helloBean");
28         System.out.println("ClassPathResource + XmlBeanFactory 调用");
29         hellobean.sayHello();
30         
31         //1.2用FileSystemResources 时 beans.xml 可以指定XML定义文件的路径来读取定义文件
32         resource = new FileSystemResource("beans.xml");
33         factory = new XmlBeanFactory(resource);
34         hellobean = (HelloBean) factory.getBean("helloBean");
35         System.out.println("FileSystemResource + XmlBeanFactory 调用");
36         hellobean.sayHello();
37         
38         /**
39          * 2、ApplicationContext 方式
40          * 采用BeanFactory对简单的应用程序来说就够了,可以获得对象管理上的便利性。
41          * 但是要获取一些特色和高级的容器功能,可以采用ApplicationContext。
42          * ApplicationContext提供了一些高级的功能,比如:
43          * 2.提供文字消息解析的方法
44          * 3.支持国际化(i18n)消息
45          * 4.可以发布事件,对事件感兴趣的Bean可以接收这些事件
46          * 
47          * Spring创始者建议采用ApplicationContext取代BeanFactory。
48          * */
49         //2.1 FileSystemXmlApplicationContext 可以指定XML定义文件的路径来读取定义文件
50         ApplicationContext context = new FileSystemXmlApplicationContext("beans.xml");        
51         hellobean = (HelloBean)context.getBean("helloBean");
52         System.out.println("FileSystemXmlApplicationContext 调用");
53         hellobean.sayHello();
54         //2.2 ClassPathXmlApplicationContext 可以从classpath中读取XML文件
55         context = new ClassPathXmlApplicationContext("beans.xml");        
56         hellobean = (HelloBean)context.getBean("helloBean");
57         System.out.println("ClassPathXmlApplicationContext 调用");
58         hellobean.sayHello();
59         //2.3 XmlWebApplicationContext 从Web应用程序的文件架构中,指定相对位置来读取定义文件
60         //
61     }
62 }

 

posted @ 2009-08-12 11:12 newspring 阅读(2581) 评论(0) 推荐(0) 编辑
摘要:  1、接口类(抽象角色)[代码] 2、接口实现(真实角色)[代码]3、代理类实现(代理角色)[代码]4、使用代理 [代码] 阅读全文
posted @ 2009-08-11 19:07 newspring 阅读(1674) 评论(0) 推荐(0) 编辑
摘要: 如题,WinForm 和 Windows Service 通信,就是应用程序和系统服务通信,可以看成是进程间的通信。通信的方式有很多,这里只介绍通过消息队列(MessageQueue)方式。理论知识就不介绍了,直接介绍实例吧。工程下载/Files/newspring/WindowsService.rar一、建立工程建立3个项目,其中,Common 为类库,包含错误日志类(Log.cs)和数据库访问... 阅读全文
posted @ 2008-12-18 18:34 newspring 阅读(5191) 评论(11) 推荐(0) 编辑
点击右上角即可分享
微信分享提示