Spring通过构造函数注入值和对象
来源:互联网 发布:java.long.ill 编辑:程序博客网 时间:2024/06/03 20:12
我们先定义一个要被注入对象的接口Description.java:
- package com.spring.di;
- public interface Description {
- public void say();
- }
我们再定义一个具体的实现PeopleDescription.java:
- package com.spring.di;
- public class PeopleDescription implements Description{
- public void say() {
- System.out.println("我今年23岁了");
- }
- }
我们再定义一个接口People.java:
- package com.spring.di;
- public interface People {
- public void say();
- }
我们定义一个具体的实现Jack.java:
- package com.spring.di;
- public class Jack implements People{
- private Description description;
- private int age;
- public Jack() {
- System.out.println("默认构造方法被调用了!");
- }
- public Jack(Description description,int age) {
- System.out.println("有参构造方法被调用了!");
- this.description=description;
- this.age = age;
- }
- public void say() {
- description.say();
- System.out.println("你好!我今年"+age+"岁了");
- }
- }
我们写一个Spring的配置文件ditest.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-2.0.xsd
- http://www.springframework.org/schema/aop
- http://www.springframework.org/schema/aop/spring-aop-2.0.xsd">
- <bean id="description" class="com.spring.di.PeopleDescription"/>
- <bean id="jack" class="com.spring.di.Jack">
- <constructor-arg index="0" ref="description"/><!--参数1,设置对象 -->
- <constructor-arg index="1" value="24"/> <!--参数2,直接设置值 -->
- </bean>
- </beans>
最后我们写一个测试类DiTest.java:
- package com.spring.di;
- import org.springframework.context.ApplicationContext;
- import org.springframework.context.support.ClassPathXmlApplicationContext;
- public class DiTest {
- public static void main(String[] args) {
- ApplicationContext ctx=new ClassPathXmlApplicationContext("ditest.xml");
- People p1=(People) ctx.getBean("jack");
- p1.say();
- }
- }
输出结果:
- 有参构造方法被调用了!
- 你好!我今年23岁了
- 你好!我今年24岁了
- 有参构造方法被调用了!
- 你好!我今年23岁了
- 有参构造方法被调用了!
- 你好!我今年23岁了
- 你好!我今年24岁了
- 有参构造方法被调用了!
- 你好!我今年23岁了
- 你好!我今年24岁了
- 有参构造方法被调用了!
- 你好!我今年23岁了
- 你好!我今年24岁了
- 有参构造方法被调用了!
- 你好!我今年23岁了
- 你好!我今年24岁了
- 有参构造方法被调用了!
- 你好!我今年23岁了
- 你好!我今年24岁了
- Spring通过构造函数注入值和对象
- spring在构造函数中注入对象
- spring通过构造注入
- 【Spring】设值注入和构造注入
- Spring 构造函数注入
- spring 构造函数注入
- spring 构造函数注入
- Spring 入门学习手札(四)通过构造函数注入
- Spring内核研究-set方法注入和构造函数注入
- Spring依赖属性注入和构造函数注入
- Spring内核研究-set方法注入和构造函数注入
- spring + maven 属性注入和构造函数注入(1)
- Spring的注入方式:设值注入和构造注入
- spring中构造函数注入
- 控制反转(IOC)、依赖注入(DI)之通过构造函数注入对象
- Spring设值注入和构造注入的比较
- Spring bean 设值注入和 构造注入
- Spring的构造注入和设值注入
- Android开发指南-用户界面-菜单特性
- Android的Intent和IntentFilter应用说明一例
- DPInst.exe
- Request.ServerVariables大全
- mini2440 SPI驱动移植
- Spring通过构造函数注入值和对象
- 联想平板电脑定价内外有别 B2B定位或为主因
- 数据挖掘的基本问题与基本方法
- Classes获取文件小结
- 在C编程中使用到的几个重要关键字之一extern
- Visual Studio扩展——在Solution Exporer树的子项的右键菜单中新增命令
- 获取iOS设备当前ip地址
- 有关javascript回车键的事件处理问题(搜索、提交等行为)
- 10个管理工作时间的小技巧