1属性注入。其实就是把对象里属性的值从xml读取出来,然后通过set方法设置到对象中。
开始
1、新建项目,spring_ioc
2、新建一个类User,包是com.spring.model
代码如下
package com.spring.model;
public class User {
private int userId;
public int getUserId() {
return userId;
}
public void setUserId(int userId) {
this.userId = userId;
}
public String getUserName() {
return userName;
}
public void setUserName(String userName) {
this.userName = userName;
}
private String userName;
}
这是一个model类,作用就不说了,现在要从xml中把值注入进去
3 新建xml文件名springbeans.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-2.5.xsd">
<bean id="user" class="com.spring.model.User">
<property name="userId" value="1"></property>
<property name="userName" value="张三"></property>
</bean>
</beans>
4新建一个测试类,为了简单就不适用junit了,包名com.spring.model.test类名UserTest
代码如下
package com.spring.model.test;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
import com.spring.model.User;
public class UserTest {
public static void main(String[] args) {
// TODO Auto-generated method stub
ApplicationContext ctx = new ClassPathXmlApplicationContext("springbeans.xml");
User user = (User) ctx.getBean("user");
System.out.println(user.getUserId());
System.out.println(user.getUserName());
}
}
这里注意,必须用ctx.getbean这种方式拿到对象,如果直接User user=new User();是无法注入属性的值的。
在这里会发现代码处错误,是因为还没有引入jar包
5引入jar包
引入spring.jar包
运行还是不行,因为还需要common-logging的jar包,再引入这个jar,这里我用的是1.2版本
引入jar包后的图
执行UserTest.java ok了
运行结果如下
2014-8-25 23:05:25 org.springframework.context.support.ClassPathXmlApplicationContext prepareRefresh
信息: Refreshing org.springframework.context.support.ClassPathXmlApplicationContext@61b383e9: display name [org.springframework.context.support.ClassPathXmlApplicationContext@61b383e9]; startup date [Mon Aug 25 23:05:25 HKT 2014]; root of context hierarchy
2014-8-25 23:05:25 org.springframework.beans.factory.xml.XmlBeanDefinitionReader loadBeanDefinitions
信息: Loading XML bean definitions from class path resource [springbeans.xml]
2014-8-25 23:05:26 org.springframework.context.support.ClassPathXmlApplicationContext obtainFreshBeanFactory
信息: Bean factory for application context [org.springframework.context.support.ClassPathXmlApplicationContext@61b383e9]: org.springframework.beans.factory.support.DefaultListableBeanFactory@3d3e58d4
2014-8-25 23:05:26 org.springframework.beans.factory.support.DefaultListableBeanFactory preInstantiateSingletons
信息: Pre-instantiating singletons in org.springframework.beans.factory.support.DefaultListableBeanFactory@3d3e58d4: defining beans [user]; root of factory hierarchy
1
张三
- 大小: 23.8 KB
分享到:
相关推荐
本案例主要探讨的是Spring框架的核心特性之一——依赖注入(Dependency Injection,简称DI),通常也被称为IOC(Inversion of Control,控制反转)。通过这个小案例,我们可以深入理解Spring如何实现IoC以及属性注入...
本文将深入探讨Spring中的一个特殊概念——方法注入,它是IOC的一种扩展形式。 方法注入允许我们在运行时通过容器调用特定的方法来传递依赖。这种方法与传统的构造器注入和属性注入相比,提供了更大的灵活性,因为...
总结来说,这个"Spring与IoC系列三:基于XML的依赖注入测试程序di.rar"涵盖了Spring框架的核心特性——依赖注入,通过XML配置文件管理对象间的依赖关系,是学习和实践Spring框架不可或缺的一部分。通过学习和操作这...
在上述XML配置中,`userService`的`userRepository`属性被注入了一个引用,这就是依赖注入的体现。这种方式使得`UserService`无需关心`UserRepository`如何创建,只需关注业务逻辑即可。 除了XML配置,Spring还支持...
标题 "Spring IOC" 描述了我们讨论的核心主题——Spring 框架中的依赖注入(Inversion of Control,简称 IOC)机制。Spring 是一个广泛应用的 Java 应用开发框架,其核心特性之一就是IOC,它极大地简化了软件组件...
在探讨Spring框架的核心组件之一——IOC(Inversion of Control,控制反转)容器之前,首先需要理解它在Spring框架中的角色与地位。对于Spring的使用者而言,IOC容器不仅是管理Bean(即应用中的对象实例)生命周期的...
在本文中,我们将深入探讨Spring框架的核心特性——控制反转(Inversion of Control,简称IoC)和依赖注入(Dependency Injection,简称DI),以及如何通过注解配置和Maven项目构建来实现这一概念。Spring框架是Java...
Spring容器会根据配置(XML或注解)来决定注入哪个UserDao实现,可能是UserDaoMysqlImpl或UserOracleImpl。这样,即使需要更改数据库,只需要修改配置,无需改动UserService的代码,体现了控制权的反转。 Spring...
在“Spring基础:IoC容器(1)”这个主题中,我们将深入探讨Spring的核心组件——IoC容器,以及它如何管理对象的生命周期和依赖关系。 IoC(Inversion of Control),也称为控制反转,是一种设计模式,它将对象的创建...
【Spring IOC测试】\n\n在Java开发领域,Spring框架是不可或缺的一部分,尤其其核心特性——Inversion of Control(IOC,控制反转),更是备受推崇。本文将深入探讨Spring的IOC特性,并通过一个XML配置文件的示例来...
现在,我们将使用Spring的XML配置文件或Java配置类来声明和装配这些类。如果我们选择XML配置,可以这样编写: ```xml ``` 这将创建一个使用A4纸的`Priter`实例。如果我们想要切换到B5纸,只需要更改XML配置...
#### 一、Spring框架的核心——IoC容器 Spring框架是一个开源的轻量级Java开发框架,其核心功能是IoC(Inversion of Control,控制反转)容器和AOP(Aspect Oriented Programming,面向切面编程),这些功能大大...
XML配置文件中定义了bean的定义,包括类名、属性等,而注解如@Autowired则可以自动匹配和注入依赖。Spring容器通过反射机制实例化对象,解析并注入依赖。这样的设计允许我们轻松地更改对象的行为,只需调整配置,...
一、Spring IOC(Inversion of Control)——控制反转 控制反转,简称IOC,是Spring框架的核心特性之一。传统的编程方式中,对象的创建和管理由程序自身负责,而在IOC中,这个责任被"反转"给了框架。Spring通过容器...
在Spring框架中,通常会把应用程序对象定义在XML配置文件中,Spring IoC容器会解析这些XML文件,并根据文件中定义的bean的配置信息来创建和管理这些对象。举例来说,使用ClassPathXmlApplicationContext可以从...
Spring IOC容器读取这些配置后,会在运行时自动创建Bean实例并进行依赖注入。这种解耦的方式使得代码更加灵活,降低了组件之间的耦合度。 然后,我们讨论SpringAnnotationIOC。随着Spring的发展,为了减少XML配置的...
标题 "Spring3.1.3 Ioc在Web容器中的建立" 涉及的是Spring框架的一个关键特性——依赖注入(Dependency Injection,简称DI),以及如何在Web应用环境中配置和使用它。Spring是Java开发中最流行的轻量级框架之一,...
【标题】"自己动手做框架(27)——配置IOC框架"揭示了这一主题的核心,即探讨如何构建自己的依赖注入(DI)框架,特别是通过配置XML文件来实现控制反转(IOC)。IOC是一种设计模式,它将对象的创建和管理的责任反转,...
1. **依赖注入**:Spring Core中的关键特性是依赖注入,它允许组件之间的关系在运行时通过配置来决定,而不是硬编码在代码中。通过XML配置文件或注解,我们可以声明bean之间的依赖关系,使代码更加灵活且易于测试。 ...