Koalaビジネスログシステム手動統合


4手動統合
1.依存の追加
アプリケーション層ビジネスログインタフェースモジュール依存性の追加

    org.openkoala.businesslog
    koala-businesslog-api
    4.0.0

 
Webレイヤビジネスログの追加モジュール依存性

    org.openkoala.businesslog
    koala-businesslog-impl
    4.0.0

 
2.LogFilterクラスの作成
例えばcom.xiaokaceng.demo.web.controller.businesslog.LogFilter.java
package com.xiaokaceng.demo.web.controller.businesslog;

import org.openkoala.businesslog.utils.BusinessLogServletFilter;
import javax.servlet.*;

public class LogFilter extends BusinessLogServletFilter {

    /**
     *                
     * @param req
     * @param resp
     * @param chain
     */
    @Override
    public void beforeFilter(ServletRequest req, ServletResponse resp, FilterChain chain) {
        addIpContext(getIp(req));
        // TODO            
        addUserContext("xxx");
    }

    public void init(FilterConfig filterConfig) throws ServletException {
        //To change body of implemented methods use File | Settings | File Templates.
    }
 
    public void destroy() {
        //To change body of implemented methods use File | Settings | File Templates.
    }

}

注:現在のユーザーは、システム実装に基づいて取得する必要があります.
 
3.DefaultBusinessLogControllerクラスの作成
package com.xiaokaceng.demo.web.controller.businesslog; import java.util.HashMap;
import java.util.Map;
import org.dayatang.domain.InstanceFactory;
import org.dayatang.utils.Page;
import org.openkoala.businesslog.application.BusinessLogApplication;
import org.openkoala.businesslog.model.DefaultBusinessLogDTO;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.ResponseBody;

 
@Controller
@RequestMapping("/log")
public class DefaultBusinessLogController {

private BusinessLogApplication businessLogApplication;

 
@ResponseBody
@RequestMapping("/list")
public Page pageJson(DefaultBusinessLogDTO defaultBusinessLogDTO,

@RequestParam int page, @RequestParam int pagesize) {

Page<DefaultBusinessLogDTO> all = getBusinessLogApplication()

.pageQueryDefaultBusinessLog(defaultBusinessLogDTO, page,

pagesize);

return all;

}

 

@ResponseBody

@RequestMapping("/delete")

public Map<String, Object> delete(@RequestParam String ids) {

Map<String, Object> result = new HashMap<String, Object>();

String[] value = ids.split(",");

Long[] idArrs = new Long[value.length];

for (int i = 0; i < value.length; i++) {

idArrs[i] = Long.parseLong(value[i]);

}

getBusinessLogApplication().removeDefaultBusinessLogs(idArrs);

result.put("result", "success");

return result;

}

 

@ResponseBody

@RequestMapping("/get/{id}")

public Map<String, Object> get(@PathVariable Long id) {

Map<String, Object> result = new HashMap<String, Object>();

result.put("data", getBusinessLogApplication()

.getDefaultBusinessLog(id));

return result;

}

 

public BusinessLogApplication getBusinessLogApplication() {

if (null == businessLogApplication) {

businessLogApplication = InstanceFactory

.getInstance(BusinessLogApplication.class);

}

return businessLogApplication;

}

}

 
4.webを構成する.xml
<filter>
   <filter-name>LogFilter</filter-name>
   <filter-class>com.xiaokaceng.demo.web.controller.businesslog.LogFilter</filter-class>
</filter>
<filter-mapping>
   <filter-name>LogFilter</filter-name>
   <url-pattern>/*</url-pattern>
</filter-mapping>

5.クラスパスの下にkoala-businesslogを作成する.properties
pointcut=execution(* org.openkoala.example.application.impl.*.*(..)) #ログスイッチkaola.businesslog.enable=true#ログエクスポータbusinessLogExporter=org.openkoala.businesslog.utils.BusinessLogExporterImpl#データベース設定log.db.jdbc.driver=${db.jdbcDriver} log.db.jdbc.connection.url=${db.connectionURL} log.db.jdbc.username=${db.username} log.db.jdbc.password=${db.password} log.db.jdbc.dialect=${hibernate.dialect} log.hibernate.hbm2ddl.auto=${hibernate.hbm2ddl.auto} log.hibernate.show_sql=${hibernate.show_sql} log.db.Type=${db.Type} db.generateDdl=${generateDdl} log.maximumConnectionCount=3000 log.minimumConnectionCount=100#スレッドプール構成#コアスレッド数log.threadPool.corePoolSize=100#最大スレッド数log.threadPool.maxPoolSize=3000#キュー最大長log.threadPool.queueCapacity=2000#スレッドプールはスレッドが許容するアイドル時間logを維持する.threadPool.keepAliveSeconds=300#スレッドプールは、タスク(スレッドなしで使用可能)を拒否する処理ポリシーlog.threadPool.rejectedExecutionHandler=java.util.concurrent.ThreadPoolExecutor$CallerRunsPolicy
  
6.スキャンパッケージパスの追加
persistence-context.xmlのpackagesToScanノードの追加:
org.openkoala.businesslog.model
 
7.Spring構成の導入
db-context.xml追加構成:

root.xml追加構成:

 
8.残りの統合はチュートリアルを参照してください
 
説明:
  • 以降、プラグインは手動で
  • を統合する必要がなく、ワンタッチ統合機能を提供します.
  • サードパーティのプロジェクト統合は複雑で、より多くの技術制約がある