<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

    常用鏈接

    留言簿

    隨筆檔案

    搜索

    •  

    最新評論

    閱讀排行榜

    評論排行榜

    主站蜘蛛池模板: 好吊妞998视频免费观看在线| 亚洲第一区在线观看| 亚洲国产三级在线观看| 人人爽人人爽人人片A免费| 日本免费一区二区三区最新 | 亚洲人成电影网站免费| 一二三四免费观看在线视频中文版 | 亚洲一区爱区精品无码| 国产精品美女免费视频观看| 国产亚洲精久久久久久无码AV| 久久不见久久见免费影院www日本 久久WWW免费人成—看片 | 亚洲视频一区网站| 日韩亚洲国产高清免费视频| 国产成人在线观看免费网站| 日韩在线视精品在亚洲| 亚洲欧洲日产国码一级毛片| 亚洲综合av一区二区三区不卡| 成在人线AV无码免费| 亚洲精品动漫免费二区| 免费a级毛片18以上观看精品| 成人a毛片视频免费看| 亚洲人成人网站色www| 69av免费观看| 亚洲AV无码一区东京热久久 | 成全视成人免费观看在线看| 国产AV无码专区亚洲Av| 999久久久免费精品国产| 亚洲国产成人AV网站| 亚洲精品无码久久久久| 久久经典免费视频| 日韩一级片免费观看| 亚洲一区二区三区高清| 在线观看视频免费国语| 中文无码日韩欧免费视频| 亚洲另类古典武侠| 免费人成年激情视频在线观看 | 亚洲aⅴ天堂av天堂无码麻豆| 国产亚洲精品国看不卡| 精品国产sm捆绑最大网免费站| 亚洲精品无码mⅴ在线观看| 亚洲香蕉网久久综合影视|