spring 依赖注入DI-个人学习笔记
来源:互联网 发布:怎样查看淘宝信誉等级 编辑:程序博客网 时间:2024/04/29 03:08
依赖注入(dependency injection):
依赖:指bean对象创建依赖于容器,bean对象依赖于资源。注入:bean对象依赖的资源由容器来设置和装配。
1.spring注入-构造注入:请看
spring-ioc 学习笔记2
2.spring注入-setter注入:
Test.java
<span style="font-size:12px;">public class Test {public static void main(String[] args) {ApplicationContext ac=new ClassPathXmlApplicationContext("beans.xml");Student student=(Student)ac.getBean("student");student.show();}}</span>1).常量注入
Student.java
public class Student {private String name;public void setName(String name) {this.name = name;}public void show(){System.out.println("name="+name);}}beans.xml
<bean name="student" class="cn.xunifeng.vo.Student"> <property name="name" value="李四"/> </bean>
2).bean注入
beans.xml
<span style="font-size:12px;"> <bean name="addr" class="cn.xunifeng.vo.Address"> <property name="address" value="贵州贵阳市"/> </bean> <bean name="student" class="cn.xunifeng.vo.Student"> <property name="name" value="李四"/> <property name="addr" ref="addr"/> </bean></span>Student.java
public class Student {private String name;private Address addr;public void setAddr(Address addr) {this.addr = addr;}public void setName(String name) {this.name = name;}public void show(){System.out.println("name="+name +" ;address="+addr.getAddress());}}
Address.java
public class Address {private String address;public String getAddress() {return address;}public void setAddress(String address) {this.address = address;}}3).数组注入
beans.xml
<bean name="addr" class="cn.xunifeng.vo.Address"> <property name="address" value="贵州贵阳市"/> </bean> <bean name="student" class="cn.xunifeng.vo.Student"> <property name="name" value="李四"/> <property name="addr" ref="addr"/> <property name="books"> <array> <value>百年孤独</value> <value>梦的解析</value> <value>武动乾坤</value> </array> </property> </bean>student.java
public class Student { ..................................private String[] books;public void setBooks(String[] books) {this.books = books;}............ ...... public void show(){...............................System.out.print("books=");for(int i=0;i<books.length;i++){System.out.print(books[i].toString()+" ");}System.out.println();}}4).List注入
beans.xml
<property name="hobbies"> <list> <value>篮球</value> <value>足球</value> <value>排球</value> </list> </property>5).Map注入
beans.xml
<span style="font-size:12px;"><property name="cards"> <map> <!-- 第一种方法 --> <entry key="建设银行" value="5552345565465431"/> <!-- 第二种方法 --> <entry> <key><value>农业银行</value></key> <value>522224151215121</value> </entry> </map> </property></span>6)Set注入
beans.xml
<property name="games"> <set> <value>LOL</value> <value>CS</value> <value>DNF</value> </set> </property>7).Null注入
beans.xml
<property name="email"><null/></property>8).Properties注入
beans.xml
<property name="info"> <props> <prop key="学号">2012040569</prop> <prop key="性别">男</prop> <prop key="姓名">张三</prop> </props> </property>
9).P命名空间注入(属性依然要设置set方法)
<span style="font-size:12px;"> <?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.xsd"></span><pre class="programlisting"><span style="font-size:12px;"><span class="hl-tag"><bean name="user" class="cn.xunifeng.vo.User" p:name="李雪红" p:age="25"/></span></span><span style="font-size:12px;"></span>user.java
<span style="font-size:12px;">package cn.xunifeng.vo;public class User {private String name;private int age;public String getName() {return name;}public void setName(String name) {this.name = name;}public int getAge() {return age;}public void setAge(int age) {this.age = age;}@Overridepublic String toString() {return "User [age=" + age + ", name=" + name + "]";}}</span>
10).C命名空间注入(要求有对应参数的构造方法 spring4.0版本才出现)
<span style="font-size:12px;"><beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:c="http://www.springframework.org/schema/c" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd"> <!-- C命名空间注入 需要有对应参数的构造方法 (前提需要引入头文件)--> <bean name="user1" class="cn.xunifeng.vo.User" c:name="傅红雪" c:age="30"/></beans></span>user.java
package cn.xunifeng.vo;public class User {private String name;private int age;public User() {}public User(String name, int age) {super();this.name = name;this.age = age;}public String getName() {return name;}public void setName(String name) {this.name = name;}public int getAge() {return age;}public void setAge(int age) {this.age = age;}@Overridepublic String toString() {return "User [age=" + age + ", name=" + name + "]";}}
0 0
- spring 依赖注入DI-个人学习笔记
- Spring 4 学习笔记3:依赖注入(DI)
- Spring 学习之 DI 依赖注入
- spring框架的学习-DI依赖注入
- spring(依赖注入-DI)
- Spring DI 依赖注入
- Spring-DI(依赖注入)
- Spring依赖注入DI
- Spring 依赖注入(DI)
- Spring DI[依赖注入]
- Spring DI(依赖注入)
- Spring依赖注入(DI)
- Spring依赖注入DI
- Spring -Spring的 DI - 依赖注入的 使用学习
- spring依赖注入(DI)
- Spring 依赖注入(DI)
- spring-DI(依赖注入)
- Spring依赖注入(DI)
- CodeForces 567D One-Dimensional Battle Ships
- datalab 数据表示实验
- leetcode78、90-Subsets I/II(组合数/子集数目)
- Javascript中的自执行匿名函数
- [数据库] MySql查询优化技巧
- spring 依赖注入DI-个人学习笔记
- javascript: 基于原型的面向对象编程
- 330. Patching Array
- MJExtension使用详解
- Linux下网卡eth1如何修改为eth0
- 第一篇博客
- latex的一些编译问题--表格--页眉页脚
- App引导界面,可以这么玩
- CF 668C(Little Artem and Random Variable-概率)