Framework的使用说明

简介:

引入maven依赖即可使用framework:

<dependency>
    <groupId>com.jztey</groupId>
    <artifactId>framework</artifactId>
</dependency>

需要注意的是framework包含内容森罗万象,为了避免造成依赖传递,framework里面的所有依赖scope均设置为provided,需要使用framework哪部分自行引用依赖

整个公司maven版本库分为两个版本:DEV-SNAPSHOT 和 PROD-SNAPSHOT。开发环境及代码中一律使用DEV-SNAPSHOT,PROD-SNAPSHOT 仅由运维打包生产环境时使用。

打包生产环境:

mvn -N versions:set -DnewVersion=PROD-SNAPSHOT

mvn deploy

#如需还原:
versions:revert clean

MVC

为了兼容spring-cloud,简化代码,参照JAX-RS,MVC去掉controller层,直接将service对外暴露。所有restful接口均要求写到interface中,实现类中不可以出现与http相关的内容,该interface既是spring-cloud的feign client也是dubbo的Reference。由于springMVC不支持方法参数注解继承,因此需要改造。

在springboot项目的Application.java类中导入

@Import({ ApplicationInterfaceMvc.class })
public class Application {
...
}

使用Swagger注解以便自动产生api文档 import io.swagger.annotations.*;

自动生成api文档,在swagger注解所在工程的pom文件添加

<build>
    <plugins>
        <plugin>
            <groupId>com.github.kongchen</groupId>
            <artifactId>swagger-maven-plugin</artifactId>
            <configuration>
                <apiSources>
                    <apiSource>
                        <springmvc>true</springmvc>
                        <locations><location>com.jztey.redmine</location></locations>
                        <schemes><scheme>http</scheme></schemes>
                        <host>test-api.998jk.com</host>
                        <basePath>/redmine</basePath>
                        <info>
                            <title>redmine报表项目</title>
                            <version>v1</version>
                            <description>统计remine信息,产生报表并定时发送</description>
                        </info>
                        <swaggerDirectory>${basedir}/../doc</swaggerDirectory>
                    </apiSource>
                </apiSources>
            </configuration>
        </plugin>
    </plugins>
</build>

执行mvn swagger:generate 生成api文档

统一异常处理:RestfulGlobalExceptionHandler RestfulResultException。异常统一返回RestfulResult json串。

表单验证:使用JSR-303 javax.validation包下相关类。注意:由于spring仅支持bean注解,@PathVariable尚不支持。

Cache

 

Encrypt

 

Security

 

Dubbo

要使用dubbo,需要在工程中加入如下依赖

<!-- dubbo -->
<dependency>
    <groupId>com.alibaba</groupId>
    <artifactId>dubbo</artifactId>
</dependency>
<dependency>
    <groupId>org.apache.zookeeper</groupId>
    <artifactId>zookeeper</artifactId>
</dependency>
<dependency>
    <groupId>com.github.sgroschupf</groupId>
    <artifactId>zkclient</artifactId>
</dependency>
<dependency>
    <groupId>org.javassist</groupId>
    <artifactId>javassist</artifactId>
</dependency>

并在springboot项目的Application.java类中导入

@Import({ ApplicationDubbo.class })
public class Application {
...
}

在application.properties进行如下配置

#微服务唯一标识,总是放在第一行
spring.application.name=redmine

...

#dubbo配置
dubbo.application.name=${spring.application.name}
dubbo.registry.protocol=zookeeper
dubbo.registry.address=10.3.5.36:2181,10.3.5.38:2181,10.3.5.42:2181
dubbo.annotation.package=com.jztey.${spring.application.name}

dubbo.protocol.port=20880 可选配置,设置dubbo端口,一台物理机部署多个微服务时才需要指定不同端口dubbo.provider.timeout=15000 可选配置,设置超时时间dubbo.consumer.check=false 可选配置,禁用启动依赖检查

 

 

Druid

要使用druid连接池,需要在工程中加入如下依赖

<dependency>
    <groupId>com.alibaba</groupId>
    <artifactId>druid</artifactId>
</dependency>

并在springboot项目的Application.java类中导入

@Import({ ApplicationDruid.class })
public class Application {
...
}

 

Monitoring

要使用监控,需要在工程中开启Druid并加入如下依赖

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-actuator</artifactId>
</dependency>
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-security</artifactId>
</dependency>

并在springboot项目的Application.java类中导入

@Import({ ApplicationDruid.class, ApplicationMonitoring.class })
public class Application {
...
}

在application.properties进行如下配置

#微服务唯一标识,总是放在第一行
spring.application.name=redmine

...

#日志
logging.file=${spring.application.name}.log
#logging.level.root=DEBUG

默认actuator监控路径为 /monitoring/health, druid健康路径为 /monitoring/druid/index.html, 默认账号密码为admin/admin

配置application.properties logging.file=${spring.application.name}.log 后可以在 /monitoring/logfile 看到服务器日志, 更多监控endpoint请参照springboot文档




      本文转自yushiwh 51CTO博客,原文链接:http://blog.51cto.com/yushiwh/1942252,如需转载请自行联系原作者




相关文章
|
SQL 监控 数据库
OceanBase社区版可以通过Zabbix监控
【10月更文挑战第5天】随着OceanBase社区版的广泛应用,企业纷纷采用这一高性能、高可用的分布式数据库系统。为了确保系统的稳定运行,使用成熟的Zabbix监控工具进行全面监控至关重要。本文通过具体示例介绍了如何配置Zabbix监控OceanBase,包括安装配置、创建监控模板和监控项、编写脚本、设置触发器及图形展示等步骤,帮助读者快速上手,及时发现并解决问题,确保业务始终处于最佳状态。
281 2
|
传感器 数据采集 存储
温控仪常见故障及LabVIEW开发流程
温控仪常见故障及LabVIEW开发流程
248 1
|
人工智能 Cloud Native 数据挖掘
|
Web App开发 JSON 前端开发
使用 React 和 NodeJS 创建一个全栈项目
在本文中,我将使用 React 和 NodeJS 创建一个全栈项目。介绍下如何让 Node.js 作为 web 服务器来加载静态资源,如何让 React 程序可以直接调用 Node API。
965 0
|
存储 数据库 C#
【UiPath2022+C#】UiPath Excel和数据表
本博客涵盖最常用的业务工具之一 - Excel。我们将使用 UiPath 特别提供和 RPA 一般提供的特定方法和工具,详细介绍使用 Excel 和类似文件(.xlsx、.xls、.csv)的不同方法。我们还将介绍一种用于处理 Excel 文件和数据库的变量 - 数据表 (System.Data.DataTable)。
【UiPath2022+C#】UiPath Excel和数据表
|
存储 缓存 JSON
|
JavaScript Dubbo Java
炸锅了,Java多线程批量操作,居然有人不做事务控制?
炸锅了,Java多线程批量操作,居然有人不做事务控制?
|
SQL 安全 数据库
HMS v1.0 appointment.php editid参数 SQL注入漏洞(CVE-2022-25491)
HMS v1.0 appointment.php editid参数 SQL注入漏洞(CVE-2022-25491)
1223 0
HMS v1.0 appointment.php editid参数 SQL注入漏洞(CVE-2022-25491)
|
人工智能 架构师 物联网
阿里云ACE现在是不是变难了,有什么轻松的方法考呢?
很多人想在这个内卷的社会中找到一个好的发展方向,但是对于普通人来说,想轻松得挣到大钱,能走的路很少,像是云计算、物联网、人工智能以及大数据等等,这些都是未来最热门的一批行业。
832 0
阿里云ACE现在是不是变难了,有什么轻松的方法考呢?
|
存储 C语言 C++
C语言 const使用详解
C语言 const使用详解
442 0
C语言 const使用详解
下一篇
开通oss服务