亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? 15. spring note.txt

?? 在達內培訓java筆記
?? TXT
?? 第 1 頁 / 共 2 頁
字號:
    實施:
    1) 創建攔截器類,封裝代理行為
        implements MethodInterceptor        
    2) 使用 ProxyFactoryBean 產生代理        
        屬性:
            target 目標對象e
            proxyInterfaces 代理的接口
            interceptorNames 代理要干什么

    補充:Advice / Interceptor
        除了 MethodInterceptor,還有多種接口可供選擇
        決定攔截方法的時機
            方法前攔截  MethodBeforeAdvice
            方法后攔截    AfterReturningAdvice                
            方法拋出異常后攔截 ThrowsAdvice                
            圍繞方法攔截 MethodInterceptor
            
    MethodInterceptor 通用

    Pointcut 
        切點,相當于過濾器,縮小攔截的方法的范圍
        
    
    概要:
        縮小接口或類的范圍
        縮小方法的范圍

    實施
    1) implements Pointcut 
        定制過濾規則
        ClassFilter
            站在接口或類的級別上縮小范圍
        MethodMatcher
            站在方法的級別上所有范圍
            isRuntime() 
                return true ,意味著要對參數的值做判斷,會調用有三個參數的matchs方法
    2) 把 pointcut 和 advice 組合成一個 advisor 對象
         advisor = pointcut + advice
         使用 DefaultPointcutAdvisor(org.springframework.aop.support.DefaultPointcutAdvisor) 構造 advisor 對象
    3) 然后把 advisor 添加到 interceptorNames 中


    使用 Spring 提供的Advisor實現
    1)NameMetchMethodPointcutAdvisor()
    1)RegexpMethodPointcutAdvisor()

    思考:使用 ProxyFactoryBean 創建代理的缺點??
        1)每個target都要聲明ProxyFactoryBean真麻煩!!!
        2)能不能以自動匹配的形式創建代理
        可以!!!使用自動代理創建器
    
    BeanNameAutoProxyCreator(org.springframework.aop.framework.autoproxy.BeanNameAutoProxyCreator)
        為指定的 bean 自動創建代理
        屬性:
            beanNames
            interceptorNames
    DefaultAdvisorAutoProxyCreator(org.springframework.aop.framework.autoproxy.DefaultAdvisorAutoProxyCreator)
        根據 Advisor 創建代理













day4
四、使用AOP管理事務

    帳戶管理
        Account
        IAccountDao
            long open(String name,double init);
            withdraw(long id,double amount);
            deposit(long id,double amount);
            List<Account> findByName(String name)        
        JdbcAccountDao
        applicationContex.xml 
            提供數據源,注入給DAO

    實踐經驗:
        Dao 中定義的方法是持久化單元操作,
        一個事務可能有若干個單元操作構成,
        所以事務邏輯不應該出現在Dao中。
        通常事務邏輯應用在業務層(service層)

    采用 AOP 管理事務
        JdbcTransactionManager implements MethodInterceptor
        
        問題:
            1)事務管理器與Dao 都操作同一個連接對象
            2)同時,要保證在每個線程都操作不同的連接對象
        解決方法:采用ThreadLocal 管理連接對象

    創建模板類
        管理資源(連接對象)的獲取釋放
        執行SQL
        JDBCTemplate
            update(String sql,Object[] args);
            List<Map> query(String sql);    

    結論:事務管理棘手
         資源的管理棘手


五、對Jdbc的支持
    1.提供了JdbcTemplate 簡化編程
    2.提供了聲明的事務管理(與編程的事務管理)
        不再把事務邏輯硬編碼在程序中,而是在配置文件中定義事務邊界
    3.把所有checkedException ---> uncheckedException
        SQLException--->DataAccessException


    應用步驟:
        Account

        IAccountDao
            long open(String name,double amount);
            void deposit(long id,double amount);
            void withdraw(long id,double amount);
            List<Account> findByName(String name);

        JdbcAccountDao    extends JdbcDaoSupport
            繼承了兩個方法:
                setDataSource(DataSource ds)
                getJdbcTemplate()        

        Test

        applicationContext.xml 
            datasource(org.springframework.jdbc.datasource.DriverManagerDataSource)
                driverClassName
                url
                username
                password
            dao
            transactionManager(org.springframework.jdbc.datasource.DataSourceTransactionManager)
                dataSource
            transactionProxy(org.springframework.transaction.interceptor.TransactionProxyFactoryBean)
                target
                transactionManager
                transactionAttributes

    事務的傳播屬性,七種                    
        調用者:調用當前方法的方法
        當前方法:聲明事務屬性的方法

    PROPAGATION_REQUIRED:如果存在一個事務,則支持當前事務。
                 如果沒有事務則開啟一個新的事務。

    PROPAGATION_SUPPORTS: 如果存在一個事務,支持當前事務。
                  如果沒有事務,則非事務的執行。

    PROPAGATION_MANDATORY: 如果已經存在一個事務,支持當前事務。
                   如果沒有一個活動的事務,則拋出異常。 

    PROPAGATION_REQUIRES_NEW: 總是開啟一個新的事務。
                      如果一個事務已經存在,則將這個存在的事務掛起。

    PROPAGATION_NOT_SUPPORTED: 總是非事務地執行,并掛起任何存在的事務。  

    PROPAGATION_NEVER: 總是非事務地執行,如果存在一個活動事務,則拋出異常       

    PROPAGATION_NESTED: 如果一個活動的事務存在,則運行在一個嵌套的事務中. 
                如果沒有活動事務, 則按TransactionDefinition.PROPAGATION_REQUIRED 屬性執行 
        
    JdbcTemplate                 
        JdbcTemplate 的API
            更新
            查詢

        如果使用Spring 提供的事務管理器 , 你必須使用 Template        


六、Spring對 Hibernate 的支持
    1) HibernateTemplate
    2) 提供聲明的事務管理
    3) LocalSessionFactoryBean(org.springframework.orm.hibernate3.LocalSessionFactoryBean) 
        dataSource

應用的步驟(與JDBC有三點不同)    
    
    1)HibernateAccountDao extends HibernateDaoSupport 
        setSessionFactory()
        getHibernateTemplate()
    
    2)事務管理器使用 HibernateTransactionManager(org.springframework.orm.hibernate3.HibernateTransactionManager)

    3)使用 LocalSessionFactoryBean 獲得SessionFactory



1.SpringDAO,SpringORM給持久層帶來的好處:  省去try catch代碼,事務、異常自動處理
2.訪問數據源的兩種方法(b/s,c/s):  dataSource:     JDBC Driver          JNDI
7.事務的五個屬性:  傳播性、只讀、







day5Struts1.x流程: B(瀏覽器)---->ActionServlet-->RequestProcessor-->Action-->JavaBean-->DB        request                       ↓      <--       <--       <--                                struts-config.xml   

七、在web 應用中使用Spring
    概述:
        Spring 提供監聽器,在應用部署時構造ApplicationContext
        ApplicationContext 對象會被綁定在 servlet context 中
        Spring 提供了API獲得servlet context 中的ApplicationContext        

   實施步驟:
    實現一個web應用,區分 mvc 。

    然后,使用spring 管理model :
    1) 配置監聽器加載上下文
        <context-param>
            <param-name>contextConfigLocation</param-name>
            <param-value>/WEB-INF/applicationContext.xml</param-value>
        </context-param>
        <listener>
            <listener-class>
            org.springframework.web.context.ContextLoaderListener
            </listener-class>
        </listener>
    2) 在Servlet中獲得上下文
        WebApplicationContext context=
            WebApplicationContextUtils
            .getWebApplicationContext(this.getServletContext());
    
-------------------------

八、對Struts 的支持
        輔助 Action 獲得 model 對象
          兩種選擇:    
            Action 不受Spring 管理
                Spring為Action 獲得 applicationContext 提供支持 
            Action 受 Spring 管理,
                容器為Action注入依賴的 model 對象
                使用Spring 的RequestProcessor 或 Action 代理實現


    與Struts 集成的兩種選擇:
    1 spring 不管理Action
        那只需要關注 Action 怎樣獲得上下文,兩種方式可選擇
        1) 仍然通過 WebApplicationContextUtils 獲得
            WebApplicationContextUtils.getWebApplicationContext(
                        this.getServlet().getServletContext());
        2)XxAction extends ActionSupport
                繼承了一個方法 :getWebApplicationContext            
            令外可選擇 :
                DispatchActionSuport 
                LookupDispatchActionSupport
                MappingDispatchActionSupport

       優點:結構清楚簡單,容易理解

    2 讓 Spring 管理 Action
        把 Action 做為 bean 配置
        這樣就可以注入Action 依賴的 model 對象了

        實現機制,有兩種:
            改變 RequestProcessor 創建 Action的行為 
                改由上下文中獲得 action
                原理:覆蓋 processActionCreate
        
            所有請求都給一個特殊的Action,
                此 Action execute 方法由上下文中獲得 action 
                然后把處理行為委托給action 
                    return action.execute() 
                    
        
        Spring 給我們提供了這兩種機制的實現
    
      實施:
        1) 把 Action 作為bean 配置,注入其依賴的model組件
            applicationContext.xml :
                <bean name="/actionpath" class="action class">
                    <property name="foo">
                        <ref bean="foo"/>
                    </property>
                </bean>
          struts-config.xml :
                <action name="/actionpath" type="action class"/>
                type 無效
                即,等價于:
                <action name="/actionpath" />    
        2) 選擇 RequestProcessor 或者 Action ,
            使其委托請求給 spring 管理的bean

            A)使用DelegatingRequestProcessor
                <controller processorClass=
                "org.springframework.web.struts.DelegatingRequestProcessor"/>
            B)使用 Action 的代理 DelegatingActionProxy
                 <action path="/actionpath" 
                    type="org.springframework.web.struts.DelegatingActionProxy"/>




Spring Security(安全) 比較JAAS與SpringSecurity    JAAS              SpringSecurity  與具體的 web容器有關   與具體web容器無關(技術:IOC/AOP) 







推薦書籍(學完這課程之后再看):Spring2.x(2.0/2.5)實例指南Spring2企業級開發(圖靈出版社) 

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产凹凸在线观看一区二区| 欧美久久一区二区| 日本一区二区视频在线| 国产成人午夜电影网| 国产精品天干天干在观线| 成人精品视频一区| 1000部国产精品成人观看| 色欧美乱欧美15图片| 国产成人av一区二区三区在线| 久久综合久久综合久久| 国产一区二区精品久久| 亚洲私人黄色宅男| 欧美乱熟臀69xxxxxx| 久久爱另类一区二区小说| 久久久91精品国产一区二区精品| av一区二区三区| 亚洲mv大片欧洲mv大片精品| 精品国产凹凸成av人网站| 成人一区在线看| 亚洲最色的网站| www国产精品av| 一本一本大道香蕉久在线精品 | 国产亚洲自拍一区| 91在线观看高清| 日韩高清在线观看| 国产午夜精品一区二区| 欧美日韩在线免费视频| 国产精品自拍三区| 亚洲最新在线观看| 国产亚洲短视频| 欧美高清精品3d| av毛片久久久久**hd| 日本亚洲欧美天堂免费| 国产精品黄色在线观看| 7777精品伊人久久久大香线蕉经典版下载 | 91麻豆自制传媒国产之光| 偷拍自拍另类欧美| 国产精品视频观看| 日韩美一区二区三区| 色菇凉天天综合网| 国产v综合v亚洲欧| 麻豆国产精品一区二区三区| 亚洲精品videosex极品| 国产亚洲va综合人人澡精品 | 国产不卡在线一区| 老汉av免费一区二区三区| 亚洲精品成人a在线观看| 久久精品网站免费观看| 欧美一区午夜视频在线观看| 91蜜桃传媒精品久久久一区二区| 国产乱码字幕精品高清av | 捆绑紧缚一区二区三区视频| 一区二区三国产精华液| 国产精品日韩精品欧美在线| 日韩欧美三级在线| 69久久99精品久久久久婷婷| 欧美专区亚洲专区| av电影一区二区| 精品一区二区在线播放| 日韩中文字幕麻豆| 一二三区精品视频| 亚洲柠檬福利资源导航| 国产精品萝li| 国产精品少妇自拍| 中文字幕成人在线观看| 久久久精品黄色| 久久综合久久综合九色| 26uuu精品一区二区在线观看| 欧美日韩dvd在线观看| 在线观看成人小视频| 在线免费观看日韩欧美| 99re这里只有精品6| 不卡的av在线播放| a4yy欧美一区二区三区| av亚洲精华国产精华精| av电影在线观看一区| 99精品久久免费看蜜臀剧情介绍| 成人黄色综合网站| 成人午夜在线免费| 成人一道本在线| 成人app网站| 91免费观看视频在线| 色综合天天综合网国产成人综合天| 成人综合日日夜夜| 不卡的av电影| 91国模大尺度私拍在线视频| 欧美性生活一区| 欧美理论电影在线| 日韩欧美国产午夜精品| 精品国产麻豆免费人成网站| 久久久亚洲午夜电影| 欧美激情一区二区三区不卡 | 亚洲一区二区美女| 免费成人在线影院| 国产传媒欧美日韩成人| fc2成人免费人成在线观看播放| av不卡在线播放| 欧美在线视频你懂得| 91精品国产丝袜白色高跟鞋| 精品国产123| 国产精品美日韩| 亚洲va欧美va天堂v国产综合| 免费久久精品视频| 国产精品综合在线视频| 色综合中文字幕国产| 色综合久久久久久久| 欧美乱熟臀69xxxxxx| 久久香蕉国产线看观看99| 亚洲日本一区二区三区| 日韩精品久久久久久| 风流少妇一区二区| 91久久线看在观草草青青| 欧美草草影院在线视频| 国产精品久久久久久久第一福利| 亚洲国产精品天堂| 国产一区二区三区免费| 日本二三区不卡| 久久久久久毛片| 亚洲成av人**亚洲成av**| 国产高清视频一区| 欧美色精品在线视频| 久久久久国产免费免费| 性久久久久久久久| 成人性生交大合| 欧美一区二区三区精品| 亚洲欧洲精品天堂一级| 美女视频黄频大全不卡视频在线播放 | 国产日产精品1区| 亚洲福中文字幕伊人影院| 国产一区二区三区久久悠悠色av| 91精品91久久久中77777| 久久九九全国免费| 午夜精品123| 97久久超碰国产精品电影| 26uuu另类欧美亚洲曰本| 天堂精品中文字幕在线| 成人永久aaa| 久久久99精品免费观看不卡| 亚洲444eee在线观看| 99re这里只有精品6| 久久久www免费人成精品| 轻轻草成人在线| 91久久国产最好的精华液| 欧美国产乱子伦| 精品一区二区三区免费播放| 欧美日本在线观看| 洋洋av久久久久久久一区| 福利一区二区在线| 久久久久久97三级| 奇米精品一区二区三区在线观看| 欧美优质美女网站| 亚洲色图欧美激情| 99re这里都是精品| 国产精品久久久久久久久免费桃花| 国产精品自拍一区| 久久这里只有精品视频网| 老司机午夜精品99久久| 日韩欧美中文字幕公布| 午夜视黄欧洲亚洲| 欧美吞精做爰啪啪高潮| 亚洲综合色噜噜狠狠| 91免费观看视频| 一区二区三区在线播放| 91免费国产视频网站| 有坂深雪av一区二区精品| 91视频观看视频| 亚洲乱码中文字幕| 91久久线看在观草草青青| 樱花影视一区二区| 欧美这里有精品| 日韩电影免费在线观看网站| 88在线观看91蜜桃国自产| 日产国产欧美视频一区精品| 日韩欧美www| 国产精品自在欧美一区| 国产欧美日韩亚州综合| 99热精品国产| 亚洲一区二区精品久久av| 欧美日产在线观看| 精品一区二区精品| 国产亚洲精品bt天堂精选| 9i看片成人免费高清| 一区二区三区久久久| 91精品国产一区二区三区蜜臀| 蜜臀av国产精品久久久久| 久久久久久久久久久久久久久99| 懂色av噜噜一区二区三区av| 亚洲男同性视频| 在线电影一区二区三区| 国内精品久久久久影院薰衣草 | 亚洲日本va在线观看| 欧美亚洲丝袜传媒另类| 日本不卡一区二区| 日本一区二区免费在线观看视频 | 欧洲一区在线电影| 久久精品国产网站| 欧美极品aⅴ影院| 欧美性猛交xxxx乱大交退制版| 麻豆成人av在线| 中文字幕日韩一区二区|