Spring xmlDI和注解
来源:互联网 发布:淘宝直播在哪 编辑:程序博客网 时间:2024/06/05 22:55
applicationContestdi.xml
<bean id="car" class="cn.happy.springdi.entity.Car"> <property name="barend" value="兰博基尼"></property> <property name="color" value="红色"></property> </bean> <!--构造植入--> <bean id="stu" class="cn.happy.springdi.entity.Student"> <constructor-arg index="0" value="小小"></constructor-arg> <constructor-arg index="1" value="21"></constructor-arg> <constructor-arg index="2" ref="car"></constructor-arg> </bean>
private String[] array;private List<String> list;private Set<String> set;Map<String,String> map;Properties properties;
<!--集合注入Array--> <bean id="array" class="cn.happy.springdi.collect.Mycolleaction"> <property name="array"> <array> <value>12</value> <value>12</value> </array> </property> </bean><!--list--> <bean id="list" class="cn.happy.springdi.collect.Mycolleaction"> <property name="list"> <list> <value>卡卡</value> <value>啦啦</value> </list> </property> </bean> <!--set--> <bean id="set" class="cn.happy.springdi.collect.Mycolleaction"> <property name="set"> <set> <value>卡卡</value> <value>啦啦</value> </set> </property> </bean> <!--Map--> <bean id="map" class="cn.happy.springdi.collect.Mycolleaction"> <property name="map"> <map> <entry key="001" value="娜娜"></entry> <entry key="002"> <value>乐乐</value> </entry> </map> </property> </bean> <!--properties--> <bean id="properties" class="cn.happy.springdi.collect.Mycolleaction"> <property name="properties"> <props> <prop key="001">啦啦</prop> <prop key="002">lel</prop> </props> </property> </bean>
测试:
@Testpublic void Test01(){ ApplicationContext app=new ClassPathXmlApplicationContext("applicationContestdi.xml"); Student stu= (Student) app.getBean("stu"); System.out.println(stu);}
测试结果:Student{name='小小', age=21, car=Car{barend='兰博基尼', color='红色'}}
P命名空间的特点:使用属性而不是子元素的形式配置Bean的属性,从而简化配置代码;
xmlns:p="http://www.springframework.org/schema/p"
<!--p命名空间-->
<bean id="stu" class="cn.happy.springdi.entity.Student" p:name="12" p:age="12" ></bean>
注解:
<?xml version="1.0" encoding="UTF-8"?><beans xmlns="http://www.springframework.org/schema/beans" xmlns:aop="http://www.springframework.org/schema/aop" xmlns:context="http://www.springframework.org/schema/context" xmlns:p="http://www.springframework.org/schema/p" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 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 http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd"> <!--开启包扫描器--> <context:component-scan base-package="cn.happy.springdi.pringannotion"></context:component-scan></beans>Car类:
@Value("兰博基尼")private String brand;@Value("紫色")private String color;@Overridepublic String toString() { return "Car{" + "brand='" + brand + '\'' + ", color='" + color + '\'' + '}';}
Student类:
//使用了Component,默认名称是类名首字母小写作为Spring中的对象名@Component("student")public class Student { @Value("lala") //setXXX设置注入 ,反射机制 private String name; @Value("18") private int age; // @Resource(name="car") //注入:byName byType JDK注解 @Autowired @Qualifier("car") private Car car; @Override public String toString() { return "Student{" + "name='" + name + '\'' + ", age=" + age + ", car2=" + car + '}'; }
测试:
@Test public void xmlid(){ ApplicationContext app=new ClassPathXmlApplicationContext("applicationContestdizhujie01.xml"); Student student= (Student) app.getBean("student"); System.out.println(student); } }测试结果:
Student{name='lala', age=18, car2=Car{brand='兰博基尼', color='紫色'}}
基于注解的DI:
注解 @overide 标识这个方法一定来源于父类
@Repository 仓库 dao层
@service biz 业务逻辑层
@controller action 处理器层,调度请求
@Resoure 在一个类中注入域属性
@value 在一个类中注入普通属性值
@Autowired 在一个类中注入域属性
Spring默认生成的bean都是单例的
<bean scope="prototype(多例)/singleton(单例)"></bean>
当@Resource没有显示提示名字的信息,如果根据默认名字找不到对应的Spring管理对象,注入机制回滚至类型匹配,如果刚好只有一个Spring管理对象,符合改依赖的类型,那么它会被注入通过设置CommonAnnatationBeanPostProcessor的fallbackToDefaultTypeMath属性为false(默认值是true)可以禁用这一特性。
阅读全文
0 0
- Spring xmlDI和注解
- xmldi和注解
- Srping的.xmldi和注解 终级版
- Spring XMLDI
- Spring XmlDI AnnotationDI
- spring组件注解和注入注解
- JSR330注解和Spring注解对比
- spring 的元注解 和组合注解
- spring和hibernate注解集成
- spring 注解@Resource 和 @Autowired
- Spring 注解 @Resource和@Autowired
- Spring 注解 @Resource和@Autowired
- Spring 注解 @Resource和@Autowired
- Spring注解@Resource和@Autowired
- Spring 注解 @Resource和@Autowired
- Spring 注解 @Resource和@Autowired
- Spring注解 @Resource和@Autowired
- spring注解和一些配置
- Android Monkey日志自动分析脚本
- Cordova插件之支付整理
- POJ
- 【 Python进阶】python strip() split()函数实战
- github(To prevent you from losing history, non-fast-forward updates were rejected)
- Spring xmlDI和注解
- c++常用头文件
- springboot系列之一——springboot入门
- words Deom总结
- JS错误与调试
- 图片轮播
- JavaBean
- js深度克隆和浅度克隆
- Android App中ViewPager所带来的滑动冲突问题解决方法