`

SpringIOC容器——参数值注入

 
阅读更多

基本在注入:

<bean id="myDataSource" class="org.apache.commons.dbcp.BasicDataSource">
		<property name="driverClassName" value="oracle.jdbc.OracleDriver" />
		<property name="url" value="jdbc:oracle:thin:@localhost:1521:XE" />
		<property name="username" value="jsd1403" />
		<property name="password" value="root" />
	</bean>

 或者下面的写法:

<!-- 视图解析器 -->
	<bean id="viewResolver"
		class="org.springframework.web.servlet.view.InternalResourceViewResolver">
		<property name="prefix">
			<value>/WEB-INF/jsp/</value>
		</property>
		<property name="suffix">
			<value>.jsp</value>
		</property>
	</bean>

 

Bean对象注入:

<bean id="empservice" class="spring.EmpService">
		<!-- 构造器注入:
			<constructor-arg index="0" ref="empdao"></constructor-arg>
		-->
		<!--属性注入:
			<property name="empDao" ref="empdao"></property>
		-->
		<constructor-arg index="0">
			<bean class="spring.EmpDao"></bean>
		</constructor-arg>
	</bean>
	<bean id="empdao" class="spring.EmpDao"></bean>

 EmpService.java编写

public class EmpService {
	private EmpDao empDao;
	
	public EmpService() {
		System.out.println("------new( )-------");
	}

	public EmpService(EmpDao empDao) {
		System.out.println("------new( param1 )-------");
		this.empDao = empDao;
	}
       //getter and setter
 }

 

List集合注入

<bean id="msg" class="com.lydia.Message">
		<property name="friends">
			<list>
				<value>jack</value>
				<value>kevin</value>
			</list>
		</property>
	</bean>

 

Set集合注入:

<bean id="msg" class="com.lydia.Message">
		<property name="friends">
			<set>
				<value>jack</value>
				<value>kevin</value>
			</set>
		</property>
	</bean>

 

Map注入:

<bean id="msg" class="com.lydia.Message">
		<property name="friends">
			<map>
				<entry key="1001" value="kevin"></entry>
				<entry key="1002" value="Charles"></entry>
			</map>
		</property>
	</bean>

 

Properties注入:

<bean id="msg" class="com.lydia.Message">
<property name="dbProp">
			<props>
				<prop key="username">root</prop>
				<prop key="password">root</prop>
			</props>
		</property>
	</bean>
 

 

也可以引入Spring再带的标签,不过要先修改applicationContext.xml中的文件协议头,加上util的描述:

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/schema/context"
	xmlns:jdbc="http://www.springframework.org/schema/jdbc" xmlns:jee="http://www.springframework.org/schema/jee"
	xmlns:tx="http://www.springframework.org/schema/tx" xmlns:jpa="http://www.springframework.org/schema/data/jpa"
	xmlns:util="http://www.springframework.org/schema/util" xmlns:mvc="http://www.springframework.org/schema/mvc"
	xsi:schemaLocation="
		http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.2.xsd
		http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.2.xsd
		http://www.springframework.org/schema/jdbc http://www.springframework.org/schema/jdbc/spring-jdbc-3.2.xsd
		http://www.springframework.org/schema/jee http://www.springframework.org/schema/jee/spring-jee-3.2.xsd
		http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-3.2.xsd
		http://www.springframework.org/schema/data/jpa http://www.springframework.org/schema/data/jpa/spring-jpa-1.3.xsd
		http://www.springframework.org/schema/util http://www.springframework.org/schema/util/spring-util-3.2.xsd
		http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-3.2.xsd">

接下来就可以使用了: 

	<!-- 定义集合bean -->
	<util:list id="friendList">
		<value>jack</value>
		<value>kevin</value>
	</util:list>
	<util:set id="friendSet">
		<value>jack</value>
		<value>kevin</value>
	</util:set>
	<util:properties id="dbprop" >
		<prop key="username">root</prop>
		<prop key="password">root</prop>
	</util:properties>
	<util:map id="friendMap">
		<entry key="username" value="root"></entry>
		<entry key="password" value="root"></entry>
	</util:map>
	<!-- 引入上面定义的集合 -->
	<bean id="msgBean" class="com.tarena.MessageBean">
		<property name="someList" ref="friendList"></property>
		<property name="someSet" ref="friendSet"></property>
		<property name="someMap" ref="friendMap"></property>
		<property name="someProps" ref="dbprop"></property>
	</bean>

 

注入Spring表达式

	<util:properties id="jdbc" 
		location="classpath:db.properties"/>
	<bean id="mydb" class="org.apache.commons.dbcp.datasources">
		<property name="username">#{jdbc.username}</property>
		<property name="password">#{jdbc.password}</property>
	</bean

注入null 或 空字符串

Spring将属性的空参数当作空字符串而不是null

<bean id="myBean' class="">
    <property name="username' value="">
<bean>

 如果注入null值则:

<bean id="myBean" class>
    <property name="username">
           <null/>
    <property>
 </bean>

 

 

分享到:
评论

相关推荐

    Spring的IoC容器初始化源码解析

    #### 一、Spring框架的核心——IoC容器 Spring框架是一个开源的轻量级Java开发框架,其核心功能是IoC(Inversion of Control,控制反转)容器和AOP(Aspect Oriented Programming,面向切面编程),这些功能大大...

    Spring实现原理及IoC容器的优点

    首先,让我们理解Spring的核心——IoC容器。IoC是一种设计模式,它改变了对象获取依赖的方式。在传统的编程中,对象会主动去寻找并创建它所需要的依赖。而在IoC中,这个过程被反转,由外部的容器负责创建对象及其...

    spring ioc

    标题 "Spring IOC" 描述了我们讨论的核心主题——Spring 框架中的依赖注入(Inversion of Control,简称 IOC)机制。Spring 是一个广泛应用的 Java 应用开发框架,其核心特性之一就是IOC,它极大地简化了软件组件...

    Sping翻转控制器

    在Spring框架中,IoC容器负责创建对象,注入依赖,配置和管理对象的生命周期。 - **作用**:简化应用程序对象的管理和配置,使得开发人员可以更加关注业务逻辑而非基础设施代码。 ##### 1.2 BeanFactory与...

    Spring IOC:找对象的一次革命(1)

    Spring IoC提供了BeanFactory和ApplicationContext两种容器类型,其中BeanFactory是基础的IoC容器,而ApplicationContext则提供了更多高级功能,如资源加载、事件发布等。 Spring IoC的配置主要通过XML或注解的方式...

    springioc和spring aop

    这样,对象不再负责创建和管理依赖,而是由IoC容器负责。Spring通过反射机制来实现这一过程,比如在上述的`TestIOC`例子中,Spring能够根据类名动态地创建对象,并通过setter方法注入属性值,实现了对象的实例化和...

    Spring基础:IoC容器(1)

    在“Spring基础:IoC容器(1)”这个主题中,我们将深入探讨Spring的核心组件——IoC容器,以及它如何管理对象的生命周期和依赖关系。 IoC(Inversion of Control),也称为控制反转,是一种设计模式,它将对象的创建...

    spring ioc+mvc代码

    在mySpring框架中,我们可以按照上述思路,逐步实现IOC容器和MVC模型。首先,构建一个简单的配置解析器,然后实现bean的实例化和依赖注入。接着,设计Controller的注册和调用机制,以及视图解析过程。最后,将这些...

    Spring源码分析_Spring_IOC

    对于Spring的使用者而言,IOC容器不仅是管理Bean(即应用中的对象实例)生命周期的中心,同时也是实现依赖注入(Dependency Injection,DI)的关键所在。在Spring框架中,IOC容器扮演着至关重要的角色,它负责管理...

    Spring IoC简单示例-注解配置-Maven构建

    Spring IoC容器通过解析XML配置文件或使用注解来识别对象及其依赖关系,并在运行时自动装配这些对象,这就是依赖注入。 在Spring中,注解配置是取代传统XML配置的一种方式,它使得代码更加简洁、易读。例如,我们...

    Spring基础:IoC容器(2)

    总的来说,这篇博客文章会涵盖Spring IoC容器的基本概念、配置方式、依赖注入以及可能深入到源码分析和实际开发中的应用。通过学习这些内容,开发者能够更有效地利用Spring框架,构建更加灵活、可维护的Java应用程序...

    第四章 在Ioc容器中装配Bean

    综上所述,本章通过介绍IoC容器的概念、Bean的定义、依赖注入、作用域、生命周期管理以及自动装配等知识点,为开发者深入理解Spring框架如何管理和装配应用中的Bean提供了重要的理论基础,并且指导开发者如何在实际...

    Java进阶之SpringIoC应用共18页.pdf.zi

    Spring IoC容器通过配置文件或注解来定义对象及其依赖关系。这种依赖注入(Dependency Injection,DI)的方式允许我们声明性地配置组件,而不是硬编码依赖。在“Java进阶之SpringIoC应用共18页.pdf”文档中,可能会...

    Spring IOC测试

    IOC意味着应用程序不再直接创建对象,而是将对象的创建和管理权交给了一个外部容器,即Spring IOC容器。这使得依赖关系得以解耦,提高了代码的可测试性和可维护性。\n\nSpring提供两种主要的IOC实现方式:一种是基于...

    一个简单的IOC容器实现

    在IT领域,Spring框架是Java开发中的重要工具,特别是其核心特性——依赖注入(Dependency Injection,简称DI),也被称为Inverse of Control(IOC,控制反转)。本文将深入探讨一个简单的IOC容器实现,帮助我们理解...

    Spring开发指南——中文版

    - Spring框架的核心组件包括IoC容器、AOP、数据访问/集成、Web、工具类和模块化扩展。 2. **依赖注入(DI)** - DI是Spring框架的核心特性,它允许开发者将对象之间的依赖关系解耦,提高代码的灵活性和可测试性。...

    Spring IOC之方法注入

    本文将深入探讨Spring中的一个特殊概念——方法注入,它是IOC的一种扩展形式。 方法注入允许我们在运行时通过容器调用特定的方法来传递依赖。这种方法与传统的构造器注入和属性注入相比,提供了更大的灵活性,因为...

    Spring3.1.3 Ioc在Web容器中的建立

    标题 "Spring3.1.3 Ioc在Web容器中的建立" 涉及的是Spring框架的一个关键特性——依赖注入(Dependency Injection,简称DI),以及如何在Web应用环境中配置和使用它。Spring是Java开发中最流行的轻量级框架之一,...

    小读spring ioc源码(一)——整体介绍

    Spring的核心就是IOC容器,它负责管理应用程序中的对象,通过反转控制权,使得对象的创建和依赖关系的维护不再由代码直接操控,而是交由容器来处理。这种方式提高了代码的可测试性和可维护性。接下来,我们将围绕...

Global site tag (gtag.js) - Google Analytics