`

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技术内幕学习笔记.docx

    《Spring技术内幕》学习笔记1——IoC容器体系结构 ...《Spring技术内幕》学习笔记5——IoC容器的依赖注入 《Spring技术内幕》学习笔记6——IoC容器的高级特性 《Spring技术内幕》学习笔记7——AOP基础

    Java课件-14-Spring-IoC-Course

    Spring容器简介——依赖注入

    Spring——IOC(控制反转)与DI(依赖注入).docx

    IOC与DI的理解及使用 控制反转IOC(Inversion of Control)是一种设计思想,DI(依赖注入)是实现IOC的一种方法 。... 在Spring中实现控制反转的是IOC容器 ,其 实现方法是依赖注入 (Dependency Injection,DI)

    Spring从入门到入土——Bean的作用域

    Bean的作用域Bean的作用域SingletonPrototypeRequestSessionGlobal Session...​ 在Spring中,那些组成应用程序的主体及由Spring IoC容器所管理的对象,被称之为bean。简单地讲,bean就是由IoC容器初始化、装配及管理的

    Spring从入门到入土——依赖注入(DI)

    Spring从入门到入土——概述以及IOC理论推导 Spring从入门到入土——快速上手Spring Spring从入门到入土——依赖注入(DI) Spring从入门到入土——Bean的作用域 Dependency Injection 概念 依赖注入(DI) 依赖:指...

    spring培训-笔记

    Spring的IoC容器 6 用户注册的例子 7 面向接口编程 8 (用户持久化类)重构第一步——面向接口编程 8 重构第二步——工厂(Factory)模式 9 重构第三步——工厂(Factory)模式的改进 10 重构第四步-IoC容器 ...

    初识Spring——Spring核心容器

    而控制反转就是把传统程序中需要实现对象的创建、代码的依赖,反转给一个专门的"第三方"即容器来实现,即将创建和查找依赖对象的控制权交给容器,由容器将对象进行组合注入,实现对象与对象的松耦合,便于功能的复用...

    Spring教程  主要内容:介绍Spring的历史,Spring的概论和它的体系结构,重点阐述它在J2EE中扮演的角色。

    Spring的IoC容器 6 用户注册的例子 7 面向接口编程 8 (用户持久化类)重构第一步——面向接口编程 8 重构第二步——工厂(Factory)模式 9 重构第三步——工厂(Factory)模式的改进 10 重构第四步-IoC容器 11 ...

    Spring——DI和通过注解实现IOC和DI

    当spring容器创建对象的时候,通过xml配置文件,把需要赋值的JavaBean属性设置在配置文件中,这样就可以把值赋到了对应的属性上。 – 成员属性和JavaBean属性: JavaBean属性=成员属性吗?答案是否定的,成员属性是...

    spring杂谈 作者zhang KaiTao

    1.12 如何为spring代理类设置属性值 1.13 我对SpringDAO层支持的总结 1.14 我对SpringDAO层支持的总结 1.15 我对SpringDAO层支持的总结 1.16 我对Spring 容器管理事务支持的总结 1.17 我对Spring 容器管理事务支持的...

    Spring.3.x企业应用开发实战(完整版).part2

     《Spring3.x企业应用开发实战》是在《精通Spring2.x——企业应用开发详解》的基础上,经过历时一年的重大调整改版而成的,本书延续了上一版本追求深度,注重原理,不停留在技术表面的写作风格,力求使读者在熟练...

    Spring3.x企业应用开发实战(完整版) part1

     《Spring3.x企业应用开发实战》是在《精通Spring2.x——企业应用开发详解》的基础上,经过历时一年的重大调整改版而成的,本书延续了上一版本追求深度,注重原理,不停留在技术表面的写作风格,力求使读者在熟练...

    蚂蚁云客服机器人面试答案.docx

    IoC还有另外一个名字——"依赖注入(Dependency 蚂蚁云客服机器人面试答案全文共6页,当前为第2页。蚂蚁云客服机器人面试答案全文共6页,当前为第2页。Injection)"。从名字上理解,所谓依赖注入,即组件之间的依赖...

    asp.net知识库

    CMT DEMO(容器管理事务演示) 事务隔离性的一些基础知识 在组件之间实现事务和异步提交事务(NET2.0) 其它 在.NET访问MySql数据库时的几点经验! 自动代码生成器 关于能自定义格式的、支持多语言的、支持多数据库的...

    基于J2EE框架的个人博客系统项目毕业设计论文(源码和论文)

    由于J2EE的开源的框架中提供了MVC模式实现框架Struts、对象关系模型中的Hibernate 的框架及拥有事务管理和依赖注入的Spring。利用现存框架可以更快开发系统。所以选择Java技术作为blog 的开发工具。 为了增加系统的...

Global site tag (gtag.js) - Google Analytics