Spring包下载地址:http://repo.spring.io/release/org/springframework/spring/

jar包下载:http://www.manyjar.com/showJar/m.html

1.set方式注入

配置文件:

<?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"    xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.1.xsd"><!-- 使用set方法注入属性     singleton 单实例 默认    prototype 多实例

--><bean id="user" class="com.spring.demo1.User" scope="singleton"><!-- 注入属性值 name的属性值就是类里面定义的属性名称value设置具体值--><property name="bookname" value="程序设计"></property></bean></beans>

测试代码:

package com.spring.demo1;import org.springframework.context.ApplicationContext;import org.springframework.context.support.ClassPathXmlApplicationContext;public class TestIOC {    public static void main(String[] args) {

        //1.加载spring配置文件,根据配置创建对象        ApplicationContext context = (ApplicationContext) new ClassPathXmlApplicationContext("config.xml");        //2.得到配置创建的对象        User user=(User) context.getBean("user");//强转,引号内为配置文件中的id名        User user1=(User) context.getBean("user");        System.out.println(user);//单实例输出地址        System.out.println(user1);//多实例输出地址不一样        user.add();//方法调用    }}

package com.spring.demo1;public class User {private String bookname;//只需要构造一个set方法public void setBookname(String bookname) {this.bookname = bookname;}public void add(){System.out.println("bookname......"+bookname);}}

测试结果:

2.有参构造注入

配置文件:

<?xml version="1.0" encoding="UTF-8"?>
<beansxmlns="http://www.springframework.org/schema/beans"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xmlns:p="http://www.springframework.org/schema/p"xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.1.xsd"><bean id="HelloWorld" class="com.gc.action.HelloWorld"><!-- 有参构造注入 -->
<constructor-arg index="0"><value>HelloWorld1</value>
</constructor-arg>
</bean>
</beans>

测试代码:

package com.gc.test;import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;import com.gc.action.HelloWorld;public class TestHelloWorld {public static void main(String[] args) {ApplicationContext actx=(ApplicationContext) new ClassPathXmlApplicationContext("applicationContext.xml");HelloWorld helloworld=(HelloWorld) actx.getBean("HelloWorld");System.out.println(helloworld.getMsg());}
}

package com.gc.action;public class HelloWorld {public String msg=null;//添加构造方法实现构造注入public HelloWorld(String msg) {super();this.msg = msg;}public String getMsg() {return msg;}public void setMsg(String msg) {this.msg = msg;}}

结果:

新看了一个P名称空间注入:

config.xml

<?xml version="1.0" encoding="UTF-8"?>
<!-- 引入p名称空间  ,最后以p结尾-->
<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"xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.1.xsd">
<!-- p名称空间注入 -->
<bean id="person" class="com.spring.property.Person" p:name="lucy"></bean>
</beans>

Person.java

package com.spring.property;public class Person {private String name;public void setName(String name) {this.name = name;}public void test1(){System.out.println("person"+name);}
}

Testp.java

package com.spring.property;import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;public class Testp {public static void main(String[] args) {ApplicationContext context=new ClassPathXmlApplicationContext("config.xml");Person person=(Person) context.getBean("person");person.test1();}
}

测试结果:

转载于:https://www.cnblogs.com/liurg/p/7942374.html

Spring的两种属性注入方式相关推荐

  1. Spring中IoC两种接口和两种依赖注入方式的比较

    spring是一个开源框架,是为了解决企业应用程序开发的复杂性而创建的,为J2EE应用程序开发提供集成的框架.简单来说,spring是一个轻量级的控制反转IOC和面向切面AOP的容器框架.spring ...

  2. 【闲谈】论Spring的三种依赖注入方式

    知识点科普: IOC和DI:IOC是控制反转,DI是依赖注入.DI是行为,而IOC是实现这一行为的容器. 循环依赖:指类与类之间互相依赖的情况,比如有类A和类B,类A中依赖类B,类B中依赖类A,由此导 ...

  3. Spring 的3种依赖注入方式

    1.属性注入: 通过setter方法注入Bean的属性值或依赖的对象 属性注入使用<proper>元素,使用Bean属性指定Bean的属性名称,value属性或<Value>子 ...

  4. SSH 框架集成的时候 sessionFactory 混合使用了两种 的注入方式错误分析

    之前在理解 sessionFactory的注入方式的时候出现了一下的bug 我的有关代码是这样子DAO实现类代码是这样子的 出现了以下的错误: 严重 [RMI TCP Connection(5)-12 ...

  5. spring四种依赖注入方式

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

  6. Java框架篇---spring aop两种配置方式

    Java框架篇---spring aop两种配置方式 第一种:注解配置AOP 注解配置AOP(使用 AspectJ 类库实现的),大致分为三步:  1. 使用注解@Aspect来定义一个切面,在切面中 ...

  7. 【Spring】Spring中AOP解析 上 两种动态代理方式与ProxyFactory代理工厂

    1.两种动态代理方式演示 1.1 JDK动态代理 JDK的动态代理,就是在程序运行的过程中,根据被代理的接口来动态生成代理类的class文件,并加载运行的过程.要求被代理类必须实现一个接口 . 如下案 ...

  8. 两种依赖注入的类型是什么?

    两种依赖注入的类型分别是setter注入和构造方法注入. setter注入: 一般情况下所有的java bean, 我们都会使用setter方法和getter方法去设置和获取属性的值,示例如下: pu ...

  9. JSP页面中的pageEncoding和contentType两种属性

    关于JSP页面中的pageEncoding和contentType两种属性的区别: pageEncoding是jsp文件本身的编码 contentType的charset是指服务器发送给客户端时的内容 ...

最新文章

  1. 抽象工厂模式_常用设计模式--抽象工厂模式
  2. 20分钟学会CMake
  3. Java web对试卷进行单选多选答题进行打分_java + vue 考试系统,适配各种题型,包含微信小程序端...
  4. 【项目管理】进度管理
  5. Openwrt按键检测分析-窥探Linux内核与用户空间通讯机制netlink使用
  6. 2018-2019-20172329 《Java软件结构与数据结构》第九周学习总结
  7. NSString 中包含中文字符时转换为NSURL
  8. com.android.phone已停止运行怎么解决方法,com.android.phone已停止运行怎么解决
  9. 创业冲突的五种解决方法是_不会说话,不懂处理人际冲突怎么办?《沟通的艺术》5步教会你...
  10. Oracle Enterprise Linux 64-bit 下Oracle11g的监听配置改动及測试步骤
  11. JavaScript随机生成信用卡卡号的方法
  12. Xcel 测试版使用手册
  13. POI加密Excel文件导出
  14. mysql 3358端口_好用的MySQL抓包工具:sniffer-agent
  15. 短视频拍摄5大景别及11种运镜手法,新手必备拍摄干货丨国仁网络资讯
  16. easyswoole 使用 从thinkphp5.1数据库ORM类库
  17. dubbo系列三、 服务发现RegistryDirectory
  18. 介绍旅游网站建设与优化技巧
  19. 兔子繁衍问题(PTA)
  20. 实验六2021011206贾天乐

热门文章

  1. 语言取10的整数倍_C语言结构体用法很多,坑也很多
  2. linux的11186端口,linux – CentOS – semanage – 删除端口范围
  3. css3蒙版运动,纯CSS3制作逼真的汽车运动动画
  4. java 运行时路径_如何在运行时检查当前Java类路径(重复)
  5. 计算机三级网络操作题,计算机等级考试三级网络技术考试模拟试题
  6. new arraylist内存_Java内存泄漏分析工具Memory Analyzer Tool
  7. kylin如何支持flink_如何使用 JuiceFS 在云上优化 Kylin 4.0 的存储性能?
  8. java null 对象吗_java中new一个对象和对象=null有什么区别
  9. 数据分析数据拼接案例
  10. Oracle 11g安装图文攻略