java培訓資料

瓜瓜東西發表於2015-01-05

Java學習

1 Java基礎

1.1    基本型別,運算子,表示式,迴圈語句

1.2 繼承,封裝,多型,介面,抽象類,匿名函式

1.3 常用工具

1.4 cmd下執行和環境搭建流程—jdk—eclipse—tomcat

1.5 陣列,異常,集合

1.6 i/o檔案讀寫

1.7 簡單設計模式

A:

B:

C:

2 J2EE

2.1 8個系統變數–servlet-jstl

2.2 springmvc+mybatis

 

3 spring

3.1 AOP

3.1.1 使用註解AOP原理

面向切面程式設計,把散落在程式中的公共部分提取出來,做成切面類,這樣的好處在於,程式碼的可重用,一旦涉及到該功能的需求發生變化,只要修改該程式碼就行,否則,你要到處修改,如果只要修改12處那還可以接受,萬一有1000處呢。
AOP底層的東西就是
JDK動態代理和CGLIB代理,說白了就是增強類的功能。
最常用的AOP應用在資料庫連線以及事務處理上

3.1.2 註解使用AOP 方法

A: <aop:aspectj-autoproxyproxy-target-class="true"/>

B:@Aspect

@Component

public classLogAdvice {

   privatestaticLogger log= LoggerFactory.getLogger(LogAdvice.class);

   

   /**

     * service請求前日誌

     * @param JoinPoint joinPoint

     */

   @Before("execution (*www.*.*(..))")

   publicvoidlogBeforeServiceImpl(JoinPoint joinPoint) {

        if (CommonUtil.isNotNull(joinPoint.getArgs())

            && joinPoint.getArgs().length != 0) {

            log.debug("********BeforeServiceClass="

                +joinPoint.getStaticPart().getSignature().toString());

            for (Object arg : joinPoint.getArgs()) {

                if (CommonUtil.isNotNull(arg)) {

                    log.debug("********parameter=" +arg.toString());

                }

            }

        }

   }

   

   /**

     * service返回後日志

     * @param joinPoint

     * @param retVal

     */

   @AfterReturning(value= "execution (* wqwqwqwq.*.*(..))", argNames = "retVal", returning = "retVal")

   publicvoidAfter(JoinPoint joinPoint, Object retVal) {

        log.debug("********AfterServiceClass="

            +joinPoint.getStaticPart().getSignature().toString());

        if (CommonUtil.isNotNull(retVal) && retVal instanceof RestResponse) {

            RestResponse resVal =(RestResponse)retVal;

            logDebug(resVal);

            if (resVal.getResponseCode() != 0)

                logError(joinPoint, resVal);

        }

        else if (CommonUtil.isNotNull(retVal)){

            log.debug("********data=" + retVal.toString());

        }

    }

3.2 攔截器

3.2.1 工作原理

 

3.2.2 使用步驟

a:

<mvc:interceptors>

        <mvc:interceptor>

            <mvc:mapping path="/tt/index"/>

            <mvc:mapping path="/aa/job"/>

            <mvc:mapping path="/ww/ss"/>

            <mvc:mapping path="/jj/jobs "/>

            <bean class="com.newegg.frontservice.web.interceptor.LoginHandlerInterceptor"/>

        </mvc:interceptor>

</mvc:interceptors>

B: HandlerInterceptorAdapter具體實現類

 

1.  public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler)    

2.          throws Exception {    

3.          return true;    

4.      }    

5.      public void postHandle(    

6.              HttpServletRequest request, HttpServletResponse response, Object handler, ModelAndView modelAndView)    

7.              throws Exception {    

8.      }    

9.      public void afterCompletion(    

10.             HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex)    

11.             throws Exception {    

12.     }    

3.3 IOC 依賴注入

3.4 靜態資源不作為請求

    <mvc:resources mapping="/js/**" location="/js/"/>

    <mvc:resources mapping="/css/**" location="/css/"/>

    <mvc:resources mapping="/images/**" location="/images/" />

    <mvc:resources mapping="/scripts/**" location="/scripts/" />

3.5 讀取靜態檔案

    <bean class="abcsss.PropertiesUtil">  

        <property name="locations">

            <list>

               <value>classpath:ddd.properties</value>

               <value>classpath:eee.properties</value>

            </list> 

        </property>

    </bean>

此時可以用@Value來讀取譬如operties檔案裡的key value

3.6 使用註解

開啟註解功能

<context:component-scan base-package="abc.*"/>

3.7 事務和資料來源配置


相關文章