首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 软件管理 > 软件架构设计 >

Spring Bean根本管理

2012-09-07 
Spring Bean基本管理Spring Bean基本管理?一、使用setter方式完成依赖注入public class HelloBean {??priva

Spring Bean基本管理
Spring Bean基本管理?一、使用setter方式完成依赖注入public class HelloBean {
?
?private String helloWord;?private Date date;?????????? ......}public class TDemo {
?public static void main(String[] args){
??? ApplicationContext acc=new ClassPathXmlApplicationContext("applicationContext.xml");
??? HelloBean hb=(HelloBean)acc.getBean("helloword");
??? System.out.println(hb.getHelloWord());
?}
}<beans
??<bean id="helloword" value="hello word !!!"></property>
??</bean>
</beans>二、使用constructor方式完成注入public class HelloBean {
?
?private String helloWord;?private String name;?public HelloBean(String helloWord,String name){
??this.helloWord=helloWord;
??this.name=name;
?}
?????????????? ........}public class TDemo {
?public static void main(String[] args){
??? ApplicationContext acc=new ClassPathXmlApplicationContext("applicationContext.xml");
??? HelloBean hb=(HelloBean)acc.getBean("ides");
??? System.out.println(hb.getHelloWord());
??? System.out.println(hb.getName());
?}}<beans
??<bean id="ides" value="我的世界,我来做主!!!">
??</constructor-arg>
??<constructor-arg index="1" value="我的名字,jack!">
??</constructor-arg>
??</bean>
</beans>三、属性参考public class HelloBean {
?
?private String helloWord;?private Date date;???????? ..........}public class TDemo {
?public static void main(String[] args){
??? ApplicationContext acc=new ClassPathXmlApplicationContext("applicationContext.xml");
??? HelloBean hb=(HelloBean)acc.getBean("helloword");
??? System.out.println(hb.getHelloWord());
??? System.out.println(hb.getDate());
?????}}<beans
<bean ?id="datetime" value="这个世界是好,是坏,都控制在自己心态!!!">
?</property>
?<property name="date" ref="datetime">
?</property>
?</bean></beans>四、综合的总结:普通类:public class Ts {
?
?private String helloWord;
?private Date date;
?
?public Ts(){}
?
?public Ts(Date date){
??this.date=date;
?? }}测试类:public static void main(String[] args){
??? ApplicationContext? acc= new ClassPathXmlApplicationContext("applicationContext.xml");
??? Ts t=(Ts)acc.getBean("根据实际情况填写");
???
??? System.out.println("date: "+t.getDate());
??? System.out.println("helloWord: "+t.getHelloWord());
?}配置文件如下:<beans
<bean id="date" value="你还,好吗?"></property>
<property name="date" ref="date"></property>
</bean>
?-->
?
<!-- autowire="autodetect"; 这个自动绑定是Spring会尝试用入constructor来处理依赖关系的建立 -->
<!--
<bean id="ts" autowire="autodetect">
?????? <property name="helloWord" value="hello!!!"/>
</bean>
?-->
?
<!-- autowire="byType";即可完成bean属性的按类型自动绑定? -->
<!--
<bean id="hw" autowire="byType">
?????? <property name="helloWord" value="hello!!!"/>
</bean>
?-->
?
<!--? autowire="byName";即可完成bean属性的按名称自动绑定 -->?
?? <!--
??? <bean id="helloBean" autowire="byName">?
??????? <property name="helloWord">?
??????????? <value>Hello!</value>?
??????? </property>?
??? </bean>
???? -->
????
<!-- autowire="constructor";即可完成bean属性的按构造方法自动绑定。在建立依赖关系时,
Srping容器会试图比对容器中的Bean实例类型,及相关的构造方法上的参数类型,看看在类型上是否符合,
如果有的话,则选用该构造方法来建立Bean实例。? -->
<!--??
??? <bean id="helloBean" autowire="constructor">?
??????? <property name="helloWord">?
??????????? <value>今天应该完成的任务!!!</value>?
??????? </property>?
??? </bean>???
?-->???
?????
<!-- 在自动绑定中,由于没办法从定义文件中,清楚地看到是否每个属性都完成设定,
???? 为了确定某些依赖关系确实建立,您可以假如依赖检查,在<bean>标签使用时设定"dependency-check",
???? 可以有四种依赖检查方式:simple、objects、all、none。
?
??? simple:只检查简单的类型(像原生数据类型或字符串对象)属性是否完成依赖关系,。
??? objects:检查对象类型的属性是否完成依赖关系。
??? all:则检查全部的属性是否完成依赖关系。
??? none:设定是默认值,表示不检查依赖性。 --><bean id="ts" autowire="autodetect" dependency-check="all">
?????? <property name="helloWord" value="hello!!!"/>
</bean>?
</beans>

热点排行