<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    posts - 26,  comments - 14,  trackbacks - 0
     Spring 是一個開源框架,是為了解決企業應用程序開發復雜性而創建的。框架的主要優勢之一就是其分層架構,分層架構允許您選擇使用哪一個組件,同時為 J2EE 應用程序開發提供集成的框架。 

            ☆ 核心容器:核心容器提供 Spring 框架的基本功能。核心容器的主要組件是 BeanFactory,它是工廠模式的實現。BeanFactory 使用控制反轉 (IOC) 模式將應用程序的配置和依賴性規范與實際的應用程序代碼分開。

      ☆ Spring 上下文:Spring 上下文是一個配置文件,向 Spring 框架提供上下文信息。Spring 上下文包括企業服務,例如 JNDI、EJB、電子郵件、國際化、校驗和調度功能。

      ☆ Spring AOP:通過配置管理特性,Spring AOP 模塊直接將面向方面的編程功能集成到了 Spring 框架中。所以,可以很容易地使 Spring 框架管理的任何對象支持 AOP。Spring AOP 模塊為基于 Spring 的應用程序中的對象提供了事務管理服務。通過使用 Spring AOP,不用依賴 EJB 組件,就可以將聲明性事務管理集成到應用程序中。

    在此 我做了個小demo 基于Spring的核心Ioc(inversion of control) 與面向切面編程AOP(Aspect Oriented Programming)。。。。。


    這個例子主要完成的義務邏輯是對信息的保存,主要代碼如下:

    package com.dr.service;

    import com.dr.DAO.ProductDAO;
    import com.dr.model.Product;

    public class ProductService {
     private ProductDAO productDAO;
     public void add(Product product){
      productDAO.save(product);
     }
     public ProductService(ProductDAO productDAO){
      super();
      System.out.println("ProductServic :ProductService");
      this.productDAO = productDAO;
     }
    }


    DAO層代碼如下:


    package com.dr.DAO;

    import com.dr.model.Product;

     

    public interface ProductDAO {
     public void save(Product product);

    }





    package com.dr.DAO.impl;

    import com.dr.DAO.ProductDAO;
    import com.dr.model.Product;

     

     

    public class ProductDAOImpl implements ProductDAO {
     private String name;
     private int id;
     public String getName() {
      return name;
     }
     public void setName(String name) {
      System.out.println("ProductDAOImple :setName");
      this.name = name;
     }
     public int getId() {
      return id;
     }
     public void setId(int id) {
      System.out.println("ProductDAOImpl :setId");
      this.id = id;
     }
     public void save(Product product) {
      //Hibernate
      //JDBC
      //XML
      //NetWork
      System.out.println("ProductDAOImpl :save :product saved!");
      this.toString();
     }
     public String toString(){
      System.out.println("id:"+id+"|name:"+name);
      return null;
      
     }

    }



    beans.xml部分代碼:

    <?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">

     <bean id="p" class="com.dr.DAO.impl.ProductDAOImpl">
         <!--采用 setter()方法依賴注入-->
       <property name="name" value="11"></property>
        <property name="id" value="22"></property>
     </bean>
     <bean id="productService" class="com.dr.service.ProductService">
      <constructor-arg>
       <ref bean="p"/>
      </constructor-arg>
     </bean>
     
    </beans>



    測試類的代碼如下所示:



    package com.dr.test;
    import org.junit.Test;
    import org.springframework.context.ApplicationContext;
    import org.springframework.context.support.ClassPathXmlApplicationContext;

    import com.dr.model.Product;
    import com.dr.service.ProductService;

     


    //Dependency Injection  依賴注入
    //Inverse of Control    控制反轉
    public class ProductServiceTest {

     @Test
     public void testAdd() throws Exception {
       //實例化應用上下文,Xml類路徑應用上下文
      ApplicationContext ctx = new ClassPathXmlApplicationContext("beans.xml");
      //getBean() 所得到得對象是Object類型的,所有在此必須強制轉換。。。
      ProductService service = (ProductService) ctx.getBean("productService");
      
      Product product = new Product();
      product.toString();
      product.setId(20);
      product.setName("蘋果");
      service.add(product);
      
     }

    }


    posted on 2011-03-05 21:49 龍ぜ殘劍 閱讀(2722) 評論(0)  編輯  收藏

    只有注冊用戶登錄后才能發表評論。


    網站導航:
     
    <2011年3月>
    272812345
    6789101112
    13141516171819
    20212223242526
    272829303112
    3456789

    常用鏈接

    留言簿

    隨筆檔案

    搜索

    •  

    最新評論

    閱讀排行榜

    評論排行榜

    主站蜘蛛池模板: 亚洲另类精品xxxx人妖| 亚洲乱码国产一区三区| 亚洲最大中文字幕无码网站| 麻花传媒剧在线mv免费观看| 久久精品国产亚洲av水果派| 在线免费观看国产| 久久青青草原国产精品免费| 亚洲精品成人无限看| 亚洲免费精彩视频在线观看| 亚洲精品午夜视频| 国产三级在线观看免费| 亚洲人成影院在线无码按摩店| 三上悠亚在线观看免费| 成年人视频在线观看免费| 亚洲精品无AMM毛片| 无码少妇精品一区二区免费动态 | 国内精品免费视频自在线| 亚洲中文字幕乱码AV波多JI| 国产大片线上免费看| 又黄又大的激情视频在线观看免费视频社区在线 | 久久久婷婷五月亚洲97号色| 韩国免费一级成人毛片| 亚洲AV日韩AV鸥美在线观看| 七次郎成人免费线路视频| 亚洲无码在线播放| 国产在线jyzzjyzz免费麻豆| 亚洲乱妇熟女爽到高潮的片| 久久久久亚洲精品男人的天堂| 看一级毛片免费观看视频| 亚洲小说区图片区另类春色| 啦啦啦完整版免费视频在线观看| 亚洲人成色在线观看| 久久亚洲AV无码西西人体| 久久www免费人成看片| 野花视频在线官网免费1| 久久久久久久亚洲Av无码 | 日韩人妻无码精品久久免费一| 学生妹亚洲一区二区| 久久久久亚洲AV综合波多野结衣| 中文字幕天天躁日日躁狠狠躁免费| 亚洲综合色一区二区三区|