`
Longmanfei
  • 浏览: 46579 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Spring 自动装配之不得不"懒"(一)

阅读更多

这次我们来介绍spring的另一种自动装配方式byName,首先我们单独的看它应该跟名字有什么直接或者间接的联系。为了例证我们的推断,我们当然要看其定义了。

1. byName:在容器中寻找和需要自动装配的属性名相同的Bean(ID),如果没有找到相符的Bean,该属性就没有被装配上。

大概就是我们的理解根据属性的名字到xml中寻找相应的bean,那么在具体实现中我们应该怎样去实现总动封装呢

<?xml version="1.0" encoding="UTF-8"?>

<beans xmlns="http://www.springframework.org/schema/beans"

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-2.5.xsd"

 >

<!--根据id检索-->

<bean id="greetingDaoImpl" 

class="cn.csdn.dao.GreetingDaoImpl" scope="singleton">

<property name="say">

<value>Longmanfei</value>

</property>

</bean>

<bean id="greetingServiceImpl"

class="cn.csdn.service.GreetingServiceImpl"

scope="singleton" autowire="byName"/>

</beans>

//GreetingDaoImpl

public class GreetingDaoImpl implements GreetingDao {

    private String say;

public void say() {

System.out.println("我打了这个招呼"+say);

}

public void setSay(String say) {

this.say = say;

}

    

}

//GreetingServiceImpl

public class GreetingServiceImpl implements GreetingService{

    private GreetingDaoImpl greetingDaoImpl;//注意属性名称和xml里的id

public void say() {

greetingDaoImpl.say();

}

public void setGreetingDaoImpl(GreetingDaoImpl gdi) {

System.out.println("我调用了set方法");

this.greetingDaoImpl = gdi;

}




public GreetingServiceImpl() {

super();

System.out.println("我调用了空的构造器");

}


public GreetingServiceImpl(GreetingDaoImpl greetingDaoImpl) {

super();

System.out.println("我调用了有参的构造器");

this.greetingDaoImpl = greetingDaoImpl;

}




    

}

//junit测试

 @Test

   public void test1(){

   /*加载spring容器可以解析多个配置文件采用数组方式传递*/

   ApplicationContext

   ac=New ClassPathXmlApplicationContext("classpath:LongmanfeibyName.xml");

   //直接转换成接口便于日后修改数据/*Ioc控制反转体现*/

   GreetingService

      gs=(GreetingService) ac.getBean("greetingServiceImpl");

      gs.say();

   

      }

 

<!--EndFragment-->
2
6
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics