01-信贷路由项目架构和 rose 框架的搭建
1.信贷路由项目架构
2.工程搭建及测试
搭建tyrRouter-parent,tyrRouter-log-web,工程采用 maven 构建
配置 pom.xml 文件,父项目管理 jar 包的版本号, 配置子项目jetty插件(rose 框架和 tomcat 插件不兼容),配置 web.xml, 新建页面 index.html 测试
3.rose 框架的搭建及测试
以tyrRouter-log-web为例搭建rose框架
配置 pom.xml 文件(rose,日志,mysql数据库,单元测试,lombok,filter动态配置)
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>com.tcredit</groupId>
<artifactId>tyrRouter</artifactId>
<version>0.0.1-SNAPSHOT</version>
</parent>
<artifactId>tyrRouter-log-web</artifactId>
<packaging>war</packaging>
<!-- 添加依赖:rose,日志,mysql数据库,单元测试,lombok -->
<dependencies>
<!-- rose -->
<dependency>
<groupId>net.paoding</groupId>
<artifactId>rose</artifactId>
</dependency>
<dependency>
<groupId>net.paoding</groupId>
<artifactId>rose-pipe</artifactId>
</dependency>
<!-- 日志 -->
<dependency>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-log4j12</artifactId>
</dependency>
<!-- mysql数据库 -->
<dependency>
<groupId>com.wzzx</groupId>
<artifactId>wzzx-datasource4jade</artifactId>
</dependency>
<!-- 单元测试 -->
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<scope>test</scope>
</dependency>
<!-- lombok -->
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
</dependency>
</dependencies>
<!-- filter 配置 -->
<profiles>
<!-- 开发,默认激活 -->
<profile>
<id>dev</id>
<properties>
<env>dev</env>
<env-s>-dev</env-s>
</properties>
<activation>
<activeByDefault>true</activeByDefault>
</activation>
</profile>
<profile>
<id>mock</id>
<properties>
<env>mock</env>
<env-s>-mock</env-s>
</properties>
</profile>
<profile>
<id>test</id>
<properties>
<env>test</env>
<env-s>-test</env-s>
</properties>
</profile>
<profile>
<id>uat</id>
<properties>
<env>uat</env>
<env-s>-uat</env-s>
</properties>
</profile>
<profile>
<id>prod</id>
<properties>
<env>prod</env>
<env-s></env-s>
</properties>
</profile>
</profiles> <build>
<!-- filter 配置 -->
<finalName>${project.artifactId}-${project.version}</finalName>
<defaultGoal>compile</defaultGoal>
<filters>
<filter>${project.basedir}/filters/${env}/config.properties</filter>
</filters>
<resources>
<resource>
<directory>src/main/resources</directory>
<filtering>true</filtering>
<includes>
<!--需要过滤的文件-->
<include>*.*</include>
</includes>
</resource>
<resource>
<directory>src/main/resources</directory>
<filtering>false</filtering>
<excludes>
<exclude>*.*</exclude>
</excludes>
</resource>
</resources> <plugins>
<!-- 构建 tomcat7插件,配置端口号8084,
运行方式: 选中项目右键-run as...-maven build.-goals输入:clean tomcat7:run- apply-run
tomcat插件有问题
-->
<plugin>
<groupId>org.eclipse.jetty</groupId>
<artifactId>jetty-maven-plugin</artifactId>
<version>9.4.4.v20170414</version>
<configuration>
<scanIntervalSeconds>5</scanIntervalSeconds>
<webApp>
<contextPath>/</contextPath>
</webApp>
<connectors>
<connector implementation="org.eclipse.jetty.server.nio.SelectChannelConnector">
<port>8080</port>
</connector>
</connectors>
</configuration>
</plugin>
<!-- <plugin>
<groupId>org.apache.tomcat.maven</groupId>
<artifactId>tomcat7-maven-plugin</artifactId>
<version>2.2</version>
<configuration>
<port>8080</port>
<path>/</path>
</configuration>
</plugin> -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<source>1.7</source>
<target>1.7</target>
<encoding>UTF-8</encoding>
</configuration>
</plugin>
</plugins>
</build>
</project>
配置 filter.dev.config.properties 动态配置(也是项目环境变量,区别开发,测试,生产)
#mysql服务
tyr_host=localhost
tyr_r1_host=localhost
tyr_r2_host=localhost
database=tyr_dev_test #日志
logPath=/Users/mryuan/work/log/stdout.log #加密规则
yzj.appId=20e0c48206fd451b96ccb68702264250123
yzj.tokenId=78902351780041f0b325cecf34aec167102
配置 web.xml 文件(中文字符编码, rose 过滤器(内含自动扫描 applicationContext 文件))
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns="http://java.sun.com/xml/ns/javaee"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
version="2.5">
<display-name>tyrRouter-log-web</display-name>
<welcome-file-list>
<welcome-file>index.html</welcome-file>
<welcome-file>index.htm</welcome-file>
<welcome-file>index.jsp</welcome-file>
<welcome-file>default.html</welcome-file>
<welcome-file>default.htm</welcome-file>
<welcome-file>default.jsp</welcome-file>
</welcome-file-list>
<!-- 中文字符编码, rose 过滤器 -->
<!-- 中文字符编码 -->
<filter>
<filter-name>encodingFilter</filter-name>
<filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
<init-param>
<param-name>encoding</param-name>
<param-value>UTF-8</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>encodingFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
<!-- rose 过滤器 -->
<filter>
<filter-name>roseFilter</filter-name>
<filter-class>net.paoding.rose.RoseFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>roseFilter</filter-name>
<url-pattern>/*</url-pattern>
<dispatcher>REQUEST</dispatcher>
<dispatcher>FORWARD</dispatcher>
<dispatcher>INCLUDE</dispatcher>
</filter-mapping>
</web-app>
配置 applicationContext-log-web.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" xmlns:context="http://www.springframework.org/schema/context"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context-4.3.xsd">
<!-- 扫描包 -->
<context:component-scan base-package="com.tcredit.log" />
</beans>
配置 datasource.yaml 文件(数据库相关配置)
#公司环境数据库配置
auth:
admin : admin #######################################
#mysql的默认连接配置 default:
type: mysql
port: 3306
initialSize: 1
maxActive: 20
maxWait: 10000
filters:
- stat
auth: root ####################################### server:
#mysql服务
tyr:
host: ${tyr_host}
tyr_r1:
host: ${tyr_r1_host}
tyr_r2:
host: ${tyr_r2_host} datasource:
tyr:
server: tyr
database: ${database}
auth: tyr
#auth: root
配置 log4j.properties 文件(日志相关配置)
log4j.rootCategory=info,stdout,MAIL log4j.appender.console=org.apache.log4j.ConsoleAppender
log4j.appender.console.layout=org.apache.log4j.PatternLayout
log4j.appender.console.layout.ConversionPattern=%d %p [%t] %C.%M(%L) | %m%n log4j.appender.stdout=org.apache.log4j.DailyRollingFileAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%d %p [%t] %C.%M(%L) | %m%n
log4j.appender.stdout.encoding=UTF-8
log4j.appender.stdout.File=${logPath}
log4j.appender.stdout.DatePattern='.'yyyy-MM-dd
#log4j.appender.stdout.layout=org.apache.log4j.PatternLayout ######################send error through email.######################
#log4j.appender.MAIL=org.apache.log4j.net.SMTPAppender
#log4j.appender.MAIL.Threshold=ERROR
#log4j.appender.MAIL.SMTPHost=smtp.mxhichina.com
#log4j.appender.mail.SMTPPort=465
#log4j.appender.MAIL.Subject=Systerm Error - tyr-mobile-web
#log4j.appender.MAIL.SMTPUsername=itsupport@tcredit.com
#log4j.appender.MAIL.SMTPPassword=Tcredit.com@2017
#log4j.appender.MAIL.From=itsupport@tcredit.com
#log4j.appender.MAIL.To=creditRouterDev@tcredit.com
#log4j.appender.MAIL.layout=com.tcredit.tyr.core.log4j.TyrHTMLLayout
配置 setting.properties 文件(配置项目所用到的环境变量)
#数据库配置
jade.datasource=datasource.yaml #信用百科授权配置
yzj.appId=${yzj.appId}
yzj.tokenId=${yzj.tokenId}
新建包 controller,service,service.impl,dao,entity新建测试类,启动项目测试
01-信贷路由项目架构和 rose 框架的搭建的更多相关文章
- 项目架构级别规约框架Archunit调研
背景 最近在做一个新项目的时候引入了一个架构方面的需求,就是需要检查项目的编码规范.模块分类规范.类依赖规范等,刚好接触到,正好做个调研. 很多时候,我们会制定项目的规范,例如: 硬性规定项目包结构中 ...
- 02-信贷路由项目rose框架拆分dubbo
项目架构和 rose 框架搭建见 https://www.cnblogs.com/yuanpeng-java/p/9835984.html 1.dubbo 框架架构及组成 2.注册中心安装及配置 h ...
- 01-电子商城项目介绍及ssm框架搭建
1.B2C电商项目功能及架构 1.1功能列表 1.2系统架构(soa架构) 2.后台管理系统工程搭建及测试 ypMall,ypMall-manager-web ypMall为父项目,管理子项目的jar ...
- flask框架实战项目架构
一.项目架构: 研习了多天flask,今天终于按照标准流程写了一个实验demo,并实现了ORM调用,一起喜欢自己写原生SQL.废话不多说,来看项目文件结构 mysite/ ./config/ defa ...
- .NET架构设计、框架设计系列文章总结
从事.NET开发到现在已经有七个年头了.慢慢的可能会很少写.NET文章了.不知不觉竟然走了这么多年,热爱.NET热爱c#.突然想对这一路的经历进行一个总结. 是时候开始下一阶段的旅途,希望这些文章可以 ...
- NET/ASP.NET Routing路由(深入解析路由系统架构原理)(转载)
NET/ASP.NET Routing路由(深入解析路由系统架构原理) 阅读目录: 1.开篇介绍 2.ASP.NET Routing 路由对象模型的位置 3.ASP.NET Routing 路由对象模 ...
- 安居客Android项目架构演进
入职安居客三年从工程师到Team Leader,见证了Android团队一路走来的发展历程.因此有心将这些记录下来与大家分享,也算是对自己三年来一部分工作的总结.希望对大家有所帮助,更希望能得到大家宝 ...
- Angular2.0的项目架构
Angular2.0的项目架构 一.项目服务端app a) Controller控制器 b) Router路由 c) Service服务 d) Public公共样式及脚本和图片等静态资源 e) Vie ...
- 大数据项目之_15_电信客服分析平台_01&02_项目背景+项目架构+项目实现+数据生产+数据采集/消费(存储)
一.项目背景二.项目架构三.项目实现3.1.数据生产3.1.1.数据结构3.1.2.编写代码3.1.3.打包测试3.2.数据采集/消费(存储)3.2.1.数据采集:采集实时产生的数据到 kafka 集 ...
随机推荐
- i春秋-web- 爆破2
题目:flag不在变量中. 打开链接: <?php include "flag.php"; $a = @$_REQUEST['hello']; eval( "var ...
- 吴裕雄--天生自然MySQL学习笔记:MySQL 及 SQL 注入
如果通过网页获取用户输入的数据并将其插入一个MySQL数据库,那么就有可能发生SQL注入安全的问题. 本章节将为大家介绍如何防止SQL注入,并通过脚本来过滤SQL中注入的字符. 所谓SQL注入,就是通 ...
- PAT-树-DFS-BFS相关问题解决方案整理
如何建树? 二叉树-建树-方式一 dfs使用root左右指针建立树节点关系,返回根节点root 二叉树-建树-方式二 dfs使用二维数组,int nds[n][2],如:nds[i][0]表示i节点的 ...
- frp内网穿透,centos7+frp成功样例
准备工作: 阿里云服务器一台,备案域名一个,本地服务器一台(本人用的虚拟机centos7) frp文件:frp_0.22.0_linux_amd64.tar.gz 链接:https://pan.bai ...
- Django框架(九):视图(二) HttpRequest对象、HttpResponse对象
1. HttpRequest对象 服务器接收到http协议的请求后,会根据报文创建HttpRequest对象,这个对象不需要我们创建,直接使用服务器构造好的对象就可以.视图的第一个参数必须是HttpR ...
- EXCEL启动慢
启动太慢,一般是加载项的问题. 1.点击文件-EXCEL选项 2. 找到加载项,一般是COM加载项 3.选择com加载项 4.然后我出现了无法更改的情况,于是,我做了以下调整,进入office安装目录 ...
- 201503-2 数字排序 Java
思路: 将出现过的数以及次数放进Map中,转成List,用Comparator就可以排序了.参数中o2-o1,与排序规则相反,为降序 import java.util.ArrayList; impor ...
- 黑马IDEA版javaweb_2-2MySQL
今日内容 数据库的基本概念 MySQL数据库软件 安装 卸载 配置 SQL 数据库的基本概念 1. 数据库的英文单词: DataBase 简称 : DB 2. 什么数据库? * 用于存储和管理数据的仓 ...
- js分页的一些思考
一两年之前在写java的时候,分页的逻辑是写在后端的,用java去实现,jsp是动态展示页码和数据.但是对于一个用ajax加载的分页数据来说,分页的逻辑必须也在前端完成,那么就不得不去思考一下在js里 ...
- Linux读取目录文件
1.opendir与readdir函数 (1).opendir打开一个目录后得到一个DIR类型的的指针给readdir使用. (2).readdir函数调用一次后就会返回一个struct dirent ...