Spring框架中对bean类不同类型属性的注入方式
来源:互联网 发布:js radio点击事件 编辑:程序博客网 时间:2024/05/05 05:52
1.简单类型:
假设有bean类Person;其中如下属性:
private String pname;private Integer page;private Double pss;private List<String> l;private Map<String, String> m;private Addr addr;private String sex;
简单类型可以直接注入,
<property name="pname"><value>wangwu</value></property>
2-list注入方式:
<property name="l"><list><value>qqq</value><value>ss</value></list></property>
3-map集合注入:
<property name="m"><map><entry key="111" value="233"></entry><entry key="sdd" value="fr"></entry></map></property>4-引用类型的注入:
<bean id="addr" class="com.bean.Addr"><property name="aid" value="1" ></property><property name="aname" value="xian"></property></bean><bean id="p5" class="com.bean.Person"><property name="addr" ref="addr"></property></bean>5-匿名内部bean: 不需要指定id属性
<property name="addr"><bean class="com.bean.Addr"><!--new addr() --><property name="name" value="beijing"/></bean></property>6-值为null:
<property name="sex"><null></null></property>
7- <lisi>:特殊符号的注入:
<property name="pname"><value><![CDATA[<lisi>"=]]></value></property>8-自动注入:autowire属性
1-byName:根据名字注入
2-byType:根据类型注入
<bean id="dao1" class="com.bean2.Dao1"></bean><bean id="service1" class="com.bean2.Service1" autowire="byName"></bean><bean id="action1" class="com.bean2.Action1" autowire="byName"></bean>
<bean id="dao2" class="com.bean2.Dao1"></bean><bean id="service2" class="com.bean2.Service1" autowire="byType" ></bean><bean id="action1" class="com.bean2.Action1" autowire="byType"></bean>
9-自动扫描注入
1-添加标签:<context:component-scan base-package="com.bean2"></context:component-scan>
1-base-package:指定要扫描的包
2-注意:需要导入:spring-aop-4.0.9.RELEASE.jar
2-在对应包的类上添加注解:
1-@Controller:修饰控制层
2-@Service:修饰业务层
3-@Repository:修饰持久层
4-@Component:通用
3-在需要依赖注入的属性上添加注解:@Autowired
具体实现:
(1)spring的主配置文件;
<?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:context="http://www.springframework.org/schema/context"xmlns:mvc="http://www.springframework.org/schema/mvc" xmlns:aop="http://www.springframework.org/schema/aop"xmlns:tx="http://www.springframework.org/schema/tx"xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-4.0.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.0.xsd http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-4.0.xsd http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-4.0.xsd http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-4.0.xsd"><bean id="p" class="com.bean.Person"><!-- <property name="pname" value="lisi"></property> --><property name="pname"><value>wangwu</value></property></bean><bean id="p1" class="com.bean.Person"><constructor-arg index="0" value="zhangsan"></constructor-arg><constructor-arg index="1" value="12.0"></constructor-arg></bean><bean id="p2" class="com.bean.Person"><constructor-arg index="0" value="zhangsan" type="java.lang.String"></constructor-arg><constructor-arg index="1" value="24" type="java.lang.Integer"></constructor-arg></bean><bean id="p3" class="com.bean.Person"><property name="l"><list><value>qqq</value><value>ss</value></list></property></bean><bean id="p4" class="com.bean.Person"><property name="m"><map><entry key="111" value="233"></entry><entry key="sdd" value="fr"></entry></map></property></bean><bean id="addr" class="com.bean.Addr"><property name="aid" value="1" ></property><property name="aname" value="xian"></property></bean><bean id="p5" class="com.bean.Person"><property name="addr" ref="addr"></property></bean><bean id="p6" class="com.bean.Person"><property name="sex"><null></null></property></bean><bean id="p7" class="com.bean.Person"><property name="pname"><value><![CDATA[<lisi>"=]]></value></property></bean></beans>测试类:
package com.test;import java.util.List;import java.util.Map;import org.springframework.context.ApplicationContext;import org.springframework.context.support.ClassPathXmlApplicationContext;import com.bean.Addr;import com.bean.Person;public class PersonTest {public static void main(String[] args) {ApplicationContext ac=new ClassPathXmlApplicationContext("beans.xml");Person p=(Person)ac.getBean("p");String name=p.getPname();System.out.println(name);System.out.println("----------------");Person p1=(Person)ac.getBean("p1");String name1=p1.getPname();Double pss1=p1.getPss();System.out.println(name1+","+p1.getPage()+","+pss1);System.out.println("----------------");Person p2=(Person)ac.getBean("p2");String name2=p2.getPname();Double pss2=p2.getPss();System.out.println(name1+","+p2.getPage()+","+pss2);System.out.println("----------------");Person p3=(Person)ac.getBean("p3");List<String> l=p3.getL();System.out.println(l.size());System.out.println("----------------");Person p4=(Person)ac.getBean("p4");Map<String, String> m=p4.getM();System.out.println(m.get("111"));System.out.println("----------------");Person p5=(Person)ac.getBean("p5");Addr addr=p5.getAddr();System.out.println(addr.getAname());System.out.println("----------------");Person p6=(Person)ac.getBean("p6");//p6.setSex("nam");System.out.println(p6.getSex()==null);System.out.println("----------------");Person p7=(Person)ac.getBean("p7");//p6.setSex("nam");System.out.println(p7.getPname());}}运行结果:
测试自动注入:其中有3个类Action1,Dao1,service1
Action1类:
package com.bean2;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.stereotype.Controller;@Controllerpublic class Action1 {@Autowiredprivate Service1 service1;public Service1 getService1() {return service1;}public void setService1(Service1 service1) {this.service1 = service1;}public void show(){System.out.println(service1);}}Dao1类:
package com.bean2;import org.springframework.stereotype.Repository;@Repositorypublic class Dao1 {}Service1类:
package com.bean2;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.stereotype.Service;@Servicepublic class Service1 {@Autowiredprivate Dao1 dao1;public Dao1 getDao1() {return dao1;}public void setDao1(Dao1 dao1) {this.dao1 = dao1;}public void show(){System.out.println(dao1);}}测试类:
package com.test;import org.springframework.context.ApplicationContext;import org.springframework.context.support.ClassPathXmlApplicationContext;import com.bean2.Action1;import com.bean2.Dao1;import com.bean2.Service1;public class Test3 {public static void main(String[] args) {ApplicationContext ac=new ClassPathXmlApplicationContext("beans3.xml");Action1 action=(Action1)ac.getBean(Action1.class);action.show();/*Dao1 dao=(Dao1)ac.getBean(Dao1.class);Service1 service=(Service1)ac.getBean(Service1.class);*/action.getService1().show();System.out.println(action);/*System.out.println(service);System.out.println(dao);*/}}运行结果:
有生成类;
阅读全文
0 0
- Spring框架中对bean类不同类型属性的注入方式
- Spring中Bean属性为集合的注入方式
- Spring不同类型的注入方式
- Spring中Bean的简单属性注入
- Spring中Bean的复杂属性注入
- Spring中bean的注入方式
- 5、SSM框架-Spring之bean的属性值XML注入方式(5)
- spring(基础六) spring中Bean属性为集合的注入方式
- spring给bean注入属性的三种方式
- Spring的bean注入方式
- spring bean注入的方式
- Spring中属性注入的方式
- Spring框架中属性的注入
- spring对抽象类中属性的自动注入
- 五、Spring容器中Bean的属性值的注入
- 学习笔记——Spring 中Bean属性的注入
- Spring属性注入Bean的List属性
- spring的配置文件中bean的注入方式
- win7下全局低层键盘钩子实现
- Linux 入门小笔记
- Leetcode 560: Subarray Sum Equal k
- 新手上路之Hibernate:第一个Hibernate例子
- 贝叶斯(Bayes)公式,将上面公式中的A换成“规律”,B换成“现象”,这个公式就一目了然
- Spring框架中对bean类不同类型属性的注入方式
- 关于类的一些操作
- 在VirtualBox中安装CentOS 7及安装增强
- 硬件时序图笔记
- 文件FILE写入与读取
- C语言快速排序!
- EASYUI 表单(FORM)用法
- MySQL索引背后的数据结构和算法原理
- Struts2创建项目2