java 代码
spring是一种轻量级的框架,是为了更便于开发人员进行j2ee的企业级开发而应用而生的!最近开始学习spring在网上找了一个特别简单的例子,尽管很简单但是将spring的核心Ioc控制反转的作用体现了出来.下面的例子是一位网友的例子的基础上改进出来的!
1.建立javabean
类User
java 代码
- package test.lht;
- public class User {
- private String userName;
- private int age;
- public int getAge() {
- return age;
- }
- public void setAge(int age) {
- this.age = age;
- }
- public String getUserName() {
- return userName;
- }
- public void setUserName(String userName) {
- this.userName = userName;
- }
- }
类Address
java 代码
java 代码
- package test.lht;
- public class Address {
- private String city;
- public String getCity() {
- return city;
- }
- public void setCity(String city) {
- this.city = city;
- }
- }
2.将javabean设置进applicationContext.xml中来实现分离
xml 代码
- xml version="1.0" encoding="UTF-8"?> 从测试类可以看出加载了spring的配置文件后,将其封装为一个AplicationContext对象,然后由这个对象的getBean()方法来获取spring配置文件中定义的bean,这样没有采用ejb的方式利用复杂的配置文件和jndi来进行实现,而是将这些复杂的事情交给了容器来进行处理.
- <beans xmlns="http://www.springframework.org/schema/beans"
- xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xmlns:lang="http://www.springframework.org/schema/lang"
- xsi:schemaLocation="
- http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.0.xsd
- http://www.springframework.org/schema/lang http://www.springframework.org/schema/lang/spring-lang-2.0.xsd">
- <bean id="user" class="test.lht.User" abstract="false"
- singleton="true" lazy-init="default" autowire="default"
- dependency-check="default">
- <property name="userName">
- <value>hello liu heng taovalue>
- property>
- <property name="age">
- <value>22value>
- property>
- bean>
- <bean id="address" class="test.lht.Address" abstract="false"
- singleton="true" lazy-init="default" autowire="default"
- dependency-check="default">
- <property name="city">
- <value>xi'anvalue>
- property>
- bean>
- beans>
3.测试类
- package test.lht;
- //打眼一看怎么觉得不就是通过配置文件来将对象的创建和设置,隐式化了!一切都由spring框架来进行处理,而不是直接创建.
- import org.springframework.context.ApplicationContext;
- import org.springframework.context.support.FileSystemXmlApplicationContext;
- public class TestUser {
- public static void main(String[] args) {
- ApplicationContext context=new FileSystemXmlApplicationContext("/src/applicationContext.xml"); //获得配置文件
- User user=(User)context.getBean("user"); //通过上下文对象获得名字为user的bean并专换成User类型
- System.out.println("当前用户的名字是"+user.getUserName());
- Address address=(Address)context.getBean("address");
- System.out.println("当前用户的年龄是"+user.getAge());
- System.out.println("当前用户所居住的城市"+address.getCity());
- //这样就实现了注入的过程,而且值还可以通过配置文件进行设置,以往的ejb需要很多的文件来进行业务的处理,这里我们只需要简单的javabean进行
- //实现就可以了.
- }
- }
简单的总结:
这个简单的例子利用spring框架的控制反转(你不要调用我,我调用你!)的思想实现了对象创建的隐藏,不是有用户直接进行创建而是由容器来进行控制和管理!