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 集 ...
随机推荐
- JAVAEE 和项目开发(第一课:浏览器和服务器的交互模式和HTTP协议的概念和介绍)
互联网的发展非常迅速,但是万变不离其宗.学习 web 开发,需要我们对互 联的交互机制有一定的了解.为了更好的理解并掌握 Servlet,在正式学习 Servlet之前需要对 web 开发中客户端和服 ...
- http与socket
http是一个应用层的协议 socket不是一个协议,而是一个编程(API)接口
- filter的原理(转)
今天学习了一下javaweb开发中的Filter技术,于是在网上搜了一下相关资料,发现这篇博客写的很不错,于是希望能转载过来以备以后继续学习之用.(原:http://www.cnblogs.com/x ...
- Nginx和php交互的两种方式
Unix socket 也叫IPC socket 也就是进程间通信套接字用于同一台主机上的不同进程间交换数据 TCP socket IP socket要利用主机的传输层(tcp),可以用于同一台主机 ...
- NFS工作原理简述
1.首先用户访问网站程序,由程序在NFS客户端发出存取NFS文件的请求,NFS客户端上的RPC服务通过网络向NFS服务器的RPC服务的111端口发出NFS文件存取的询问请求. 2.NFS服务器的RPC ...
- python对数组缺失值进行填充
1. 两个常用的函数 1.1 np.nonzero() np.nonzero()函数返回数组中不为False(0)的元素对应的索引 a = np.array([1,2,0,3,1,0]) print( ...
- 吴裕雄--天生自然ShellX学习笔记:Shell 传递参数
在执行 Shell 脚本时,向脚本传递参数,脚本内获取参数的格式为:$n.n 代表一个数字,1 为执行脚本的第一个参数,2 为执行脚本的第二个参数,以此类推…… 实例 以下实例我们向脚本传递三个参数, ...
- PAT Vocabulary
数字 单词 词性 中文意 常用 音标 non-negative 非负数 non-negative number Positive 正整数 Positive integer Negative 负数 Ne ...
- Maven--优化依赖
Maven 会自动解析所有项目的直接依赖和传递依赖,并且根据规则正确判断每个依赖的范围,对于一些依赖冲突,也能进行调节,以确保任何一个构件只有唯一的版本在依赖中存在.在这些工作之后,最后得到的那些依赖 ...
- Python常用模块小结
目录 Python常用模块小结 一.Python常用模块小结 1.1 time模块 1.2 datetime模块 1.3 random模块 1.4 os模块 1.5 sys模块 1.6 json模块 ...