已Hello World为例子:
HelloWorld.java
package com.example.springpractice; public class HelloWorld { private String message; public void getMessage() { System.out.println("Your message: " + message); } public void setMessage(String message) { this.message = message; } }
MainApp.java
package com.example.springpractice; import org.springframework.context.ApplicationContext; import org.springframework.context.support.ClassPathXmlApplicationContext; public class MainApp { public static void main(String[] args) { ApplicationContext ac = new ClassPathXmlApplicationContext("Bean.xml"); HelloWorld objA = (HelloWorld) ac.getBean("HelloWorld"); objA.getMessage(); objA.setMessage("修改了message"); HelloWorld objB = (HelloWorld) ac.getBean("HelloWorld"); objB.getMessage(); } }
以上代码不动,修改bean配置文件的作用域来学习bean作用域的效果:
Bean.xml
<?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/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd"> <bean id="HelloWorld" class="com.example.springpractice.HelloWorld" scope="prototype"> <property name="message" value="学习ing"/> </bean> </beans>
scope="prototype",每次都生成新的对象。
效果:
scope="singleton",单例,相当于这个类只有一个实现对象。
效果:
另外还有请求维度的:request、session、global-session,等学会web服务后再总结。