多种方式实现依赖注入

  1.Spring 使用setter访问器实现对属性的赋值,

  2.Spring 构造constructor方法赋值,

  3.接口注入

  4.Spring P命名空间注入直接量

  

setter访问器实现方式following

实体类中设置属性的set访问器

 public class Equip {
private String name; //装备名称
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}

applicationContext.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"
xmlns:aop="http://www.springframework.org/schema/aop"
xsi:schemaLocation="
http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop.xsd
"> <bean id="armet" class="zym.game.entity.Equip">
<property name="name" value="战神头盔"/>
</bean>
</beans>

这样就实现了通过setter赋值     前台getBean("armet")的时候    该对象的name属性默认就是:战神头盔。

构造注入

使用设置注入时,Spring通过JavaBean的无参构造方法实例化对象。当我们编写了带参构造方法后,java虚拟机不会再提供默认的无参构造方法,建议自行添加一个无参构造方法。

 public class User implements Serializable {
private String name;
private String password;
    //car变量称为域属性
private Car car; @Override
public String toString() {
return "用户名:"+this.getName()+"\t密码:"+this.getPassword();
}; public User() {}
}

带有域属性的注入方式:

 <?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:p="http://www.springframework.org/schema/p"
xmlns:aop="http://www.springframework.org/schema/aop"
xsi:schemaLocation="
http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/aop
http://www.springframework.org/schema/aop/spring-aop.xsd
"> <!-- 构造注入 域属性注入 -->
<bean id="user11" class="entity.User" scope="singleton">
<constructor-arg index="0" type="java.lang.String" value="zs"></constructor-arg>
16 <constructor-arg index="1" type="java.lang.String" value="pwd@123"></constructor-arg>
17 <constructor-arg index="2" type="entity.Car" ref="mycar"></constructor-arg>
</bean>
</beans>

P命名空间注入直接量

通过设置p:属性值    给类字段进行赋值

需要添加引用:xmlns:p="http://www.springframework.org/schema/p"
可以在pdf文档里找到

 <?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:p="http://www.springframework.org/schema/p"
xmlns:aop="http://www.springframework.org/schema/aop"
xsi:schemaLocation="
http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/aop
http://www.springframework.org/schema/aop/spring-aop.xsd
">
<!-- 命名空间注入 -->
<bean id="user2" class="entity.User" p:name="zym" p:password="zym@123"></bean> </beans>

  

IOC和AOP使用扩展 多种方式实现依赖注入的更多相关文章

  1. Ioc和Aop扩展--多种方式实现依赖注入(构造注入,p命名空间注入,集合类型注入,注入null和注入空值)

    构造注入 语法: <constructor-arg>    <ref bean="bean的id"/> </constructor-arg> 1 ...

  2. Spring多种方式实现依赖注入

    平常的Java开发中,程序员在某个类中需要依赖其它类的方法. 通常是new一个依赖类再调用类实例的方法,这种开发存在的问题是new的类实例不好统一管理. Spring提出了依赖注入的思想,即依赖类不由 ...

  3. Spring——多种方式实现依赖注入

    在Spring的XML配置中,只有一种声明bean的方式:使用<bean>元素并指定class属性.Spring会从这里获取必要的信息来创建bean. 但是,在XML中声明DI时,会有多种 ...

  4. 多种方式实现依赖注入及使用注解定义bean

    构造注入 如何给构造方法中的参数注入方法呢如下 首先bean代码如下 package cn.pojo; public class Greeting { /** * 说的话 */ private Str ...

  5. 依赖注入及AOP简述(十二)——依赖注入对象的行为增强(AOP) .

    四.依赖注入对象的行为增强(AOP) 前面讲到,依赖注入框架的最鲜明的特点就是能够提供受容器管理的依赖对象,并且可以对对象提供行为增强(AOP)功能,所以这一章我们来讨论有关AOP的话题. 1.    ...

  6. ExpandoObject与DynamicObject的使用 RabbitMQ与.net core(一)安装 RabbitMQ与.net core(二)Producer与Exchange ASP.NET Core 2.1 : 十五.图解路由(2.1 or earler) .NET Core中的一个接口多种实现的依赖注入与动态选择看这篇就够了

    ExpandoObject与DynamicObject的使用   using ImpromptuInterface; using System; using System.Dynamic; names ...

  7. spring核心思想:IOC(控制反转)和DI(依赖注入)

    Spring有三大核心思想,分别是控制反转(IOC,Inversion Of Controller),依赖注入(DI,Dependency Injection)和面向切面编程(AOP,Aspect O ...

  8. 特性attribute,声明和使用attribute,应用attribute,AOP面向切面,多种方式实现AOP

    1 特性attribute,和注释有什么区别2 声明和使用attribute3 应用attribute4 AOP面向切面5 多种方式实现AOP ---------------------------- ...

  9. Spring IoC和AOP使用扩展

    Spring提供了设值注入,构造注入等依赖注入方式. 使用p命令空间可以简化属性注入的配置. Spring提供的增强处理类型包括前置增强,异常抛出增强,环绕增强,最终增强等. 通过Schema形式将P ...

随机推荐

  1. yii使用MongoDB作为数据库服务软件[win7环境下](2)

    11.测试php连接并对mongodb进行简单的操作,下载RockMongo对应的数据库管理软件放到webserver软件相关的目录下,例如: 12.打开对应的url[你还可以接着对数据库进行相应的操 ...

  2. C#利用SMTP服务器发送邮件

    使用.net(C#)发送邮件学习手册(带成功案例) 1.了解发送邮件的三种方式 2.实例介绍使用client.DeliveryMethod = System.Net.Mail.SmtpDelivery ...

  3. MYSQL分库分表和不停机更改表结构

    在MYSQL分库分表中我们一般是基于数据量比较大的时间对mysql数据库一种优化的做法,下面我简单的介绍一下mysql分表与分库的简单做法. .分库分表 很明显,一个主表(也就是很重要的表,例如用户表 ...

  4. 【SVN】自动备份SVN仓库

    仓库的位置为:C:\xxx\SVNRepo\ MyCommonUtils MyStudyProject SVN仓库备份.bat '参考连接:http://www.uml.org.cn/pzgl/201 ...

  5. 初学RabbitMQ

    一.RabbitMQ中的一些概念 (1)Connection(连接) 与RabbitMQ建立连接,由ConnectionFactory创建每个Connection至于一个物理server进行连接,此链 ...

  6. Hadoop SequenceFile数据结构介绍及读写

    在一些应用中,我们需要一种特殊的数据结构来存储数据,并进行读取,这里就分析下为什么用SequenceFile格式文件. Hadoop SequenceFile Hadoop提供的SequenceFil ...

  7. 3、Linux 获取帮助的方法-关机命令-7个系统启动级别

    1.获取帮助的方法: (1).命令 -h 或--help (2).man man 命令  --->/user 查看user选项 /选项 ---->n 查看下一项 2.关机命令 (1).sh ...

  8. ubuntu 下载额外数据不成功”的恼人提示通知

    最近用Ubunt也遇到这个问题,搜到这个答案 参考原文链接: http://forum.ubuntu.org.cn/viewtopic.php?t=387865 2.移除“下载额外数据不成功”的恼人提 ...

  9. MySQL中四舍五入的实现

    MySQL四舍五入的实现   文章主要描述的是MySQL四舍五入的实际应用, 以及在其实际操作中的值得我们大家注意的事项与其实际应用代码的描述,以下就是文章的主要内容的详细描述,望大家在浏览之后会对其 ...

  10. 使用 jQuery Mobile 与 HTML5 开发 Web App —— HTML5 离线缓存

    本文要介绍的,是 HTML5 离线网络应用程序的特性,离线网络应用程序在 W3C 中的实际名称是 "Offline Web applications" ,也称离线缓存.当用户打开浏 ...