spring(依赖注入-DI)

Spring框架精要
Spring框架由Rod Johnson创建,旨在简化企业应用开发。它利用基本JavaBean实现原本仅能通过EJB完成的功能,并提供了更多企业级特性。Spring框架的核心优势包括低侵入式设计、独立于应用服务器以及模块化特性等。
   代码由原来的面向对象,到了面向接口,再到现在的依赖注入模式,代码的低侵入式和松耦合性可见一斑,而这些在spring框架中被诠释的淋漓尽致!

        Spring是一个开源框架,它由Rod Johnson创建。它是为了解决企业应用开发的复杂性而创建的。Spring使用基本的JavaBean来完成以前只可能由EJB完成的事情。然而,Spring的用途不仅限于服务器端的开发。从简单性、可测试性和松耦合的角度而言,任何Java应用都可以从Spring中受益。

        它的优点:

◆低侵入式设计,代码污染极低
◆ 独立于各种应用服务器,可以真正实现Write Once,Run Anywhere的承诺
◆Spring的DI机制降低了业务对象替换的复杂性
◆Spring并不完全依赖于Spring,开发者可自由选用Spring框架的部分或全部

        目的功能:

◆目的:解决企业应用开发的复杂性

◆功能:使用基本的JavaBean代替EJB,并提供了更多的企业应用功能

◆范围:任何Java应用

简单来说,Spring是一个轻量级的控制反转(IoC)和面向切面(AOP)的容器框架。

        它的依赖注入(DI)是什么呢?

        所谓依赖注入,就是明确的定义组件接口(如UserDAO),独立开发各个组件,然后根据组件间的依赖关系组装(UserAction依赖于UserBiz,UserBiz依赖于UserDAO)运行的设计开发模式!

        系统组装的时候,只要是UserDAO的实现类就可以注入到UserBiz中,可以是UserDAOjdbcImpl,也可以是UserDAOHibImpl,究竟使用哪个实现类,组装的时候再决定,是不是很方便呢?

        看下面一些简单的代码:

        定义一个Girl类,要实现和Boy的kiss方法(很俗..呵呵):

        public class Girl {
         private Boy boy;        
 
         public void kiss()                
         {
          boy.kiss();
         }

         public void setBoy(Boy boy) {
          this.boy = boy;
         }
        }

        //我们这块用的是注入方式中的一种:set get 方法注入!

        接着来写一个Boy类,里面有个kiss方法:

        public class Boy {
         public void kiss()
         {
          System.out.println("boy and girl ....");
         }
        }

        接着在applicationContext.xml里面进行配置(在spring1.0中叫做bean.xml):

        <?xml version="1.0" encoding="UTF-8"?>
        <!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN"
         "http://www.springframework.org/dtd/spring-beans.dtd">
        <beans>
         <bean id="girl" class="com.viita.Girl">
                  <property name="boy">                                
                  <ref bean="boy"/>                                                
                  </property>
         </bean>
         <bean id="boy" class="com.viita.Boy"></bean>
         </beans>

        这里的bean里面有个value参数,意思是:基础数据类型
        而ref:引用另外一个对象!

        好了,建立Test测试类:

        public class Test {
         public static void main(String[] args) {
          Resource r = new ClassPathResource("applicationContext.xml");
          BeanFactory factory = new XmlBeanFactory(r);
          Girl girl = (Girl)factory.getBean("girl");
          girl.kiss();
         }
        }

OK,使用set get 方法的注入已经完毕!

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值