使用指南
# 关于分支和版本的说明
分支须知
- 最新代码,在
dev
分支(不保证稳定) - 稳定版代码,在
master
分支
分支说明
- 开发分支(
dev
):最新代码,不保证稳定,实时发布SNAPSHOT
,同时提交PR
也是在这个分支。 - 主分支(
master
):保护分支,稳定版代码,用于发布稳定版版本,不接受任何PR
。
版本号说明
- 稳定版(
release
):格式为x.x.x
,为官方推荐使用的版本,可以用于生产环境。 - 快照版(
snapshots
):格式为x.x.x-SNAPSHOT
。快照版会实时更新(dev
分支push
后),想尝试新功能的开发者可以在开发环境使用SNAPSHOT
版。
注意
快照版不可用于生产环境!!!
快照版不可用于生产环境!!!
快照版不可用于生产环境!!!
# 使用须知
在 1.0.5 以前版本,jap 中依赖 jakarta-servlet
,在 JAP 接口或者内部流程中使用到了 javax.servlet.http
包下的 HttpServletRequest
、Cookie
、HttpServletResponse
、HttpSession
。
// JAP 旧版本提供的接口
public interface JapStrategy {
default JapResponse authenticate(AuthenticateConfig config, HttpServletRequest request, HttpServletResponse response) {
return null;
}
}
2
3
4
5
6
开发者调用接口示例如下:
// 在 Spring 框架中使用 jap
XxJapStrategy.authenticate(config, HttpServletRequest, HttpServletResponse);
2
为了提高框架适配性,自 1.0.5 版本开始, JAP 不再强制依赖 jakarta-servlet
或者 javax.servlet
,而是采用了一套全新的接口(参考:jap-http (opens new window)),开发者在调用 JAP 接口时需要对原 request 进行适配。
public interface JapStrategy {
default JapResponse authenticate(AuthenticateConfig config, JapHttpRequest request, JapHttpResponse response) {
return null;
}
}
2
3
4
5
比如,开发者项目中使用了 jakarta-servlet
或者 javax.servlet
,那么需要对 HttpServletRequest
、HttpServletResponse
进行适配处理:
// 在 spring 框架中使用 1.0.5 或更高级版本的 jap
XxJapStrategy.authenticate(config, new JakartaRequestAdapter(HttpServletRequest), new JakartaResponseAdapter(HttpServletResponse));
2
再比如,开发者项目中使用了 blade-mvc
,那么需要对 HttpRequest
、HttpResponse
进行适配处理:
// 在 Blade 框架中使用 1.0.5 或更高级版本的 jap
XxJapStrategy.authenticate(config, new BladeRequestAdapter(HttpRequest), new BladeResponseAdapter(HttpResponse));
2
普通项目(基于 jakarta-servlet
或者 javax.servlet
)不需要单独处理,直接按照上方说明使用即可,JAP 中默认集成了 jap-http-jakarta-adapter
组件。
对于不是基于 jakarta-servlet
或者 javax.servlet
的框架,需要开发者自己实现适配器,实现方式请参考:jap-http-adapter (opens new window)。当前已经支持的适配器包含 jakarta
和 blade
。
<!-- blade-mvc 适配器 -->
<dependency>
<groupId>com.fujieid.jap.http</groupId>
<artifactId>jap-http-blade-adapter</artifactId>
<version>1.0.0</version>
</dependency>
2
3
4
5
6
# 使用 jap-bom
jap-bom,可以简化依赖和依赖版本统一处理,避免jar冲突。
注意:maven 是按先后顺序进行依赖的,所以 jap-bom 顺序按 jap、spring boot、spring cloud依次添加。
# Maven
<dependencyManagement>
<dependencies>
<dependency>
<groupId>com.fujieid</groupId>
<artifactId>jap-bom</artifactId>
<version>${jap.version}</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
2
3
4
5
6
7
8
9
10
11
# Gradle
Spring boot 环境中可以开启 apply plugin: "io.spring.dependency-management"
插件。
dependencyManagement {
imports {
mavenBom "com.fujieid:jap-bom:${japVersion}"
}
}
2
3
4
5
# 使用 snapshots
注意:snapshots
版本会及时响应,修复最新的 bug
或者必要的需求。
# Maven
<repositories>
<repository>
<id>sonatype-nexus-snapshots</id>
<name>Sonatype Nexus Snapshots</name>
<url>https://oss.sonatype.org/content/repositories/snapshots/</url>
<snapshots>
<enabled>true</enabled>
</snapshots>
<releases>
<enabled>false</enabled>
</releases>
</repository>
</repositories>
2
3
4
5
6
7
8
9
10
11
12
13
# Gradle
repositories {
mavenLocal()
maven { url "https://maven.aliyun.com/repository/public" }
maven { url "https://maven.aliyun.com/repository/spring" }
maven { url "https://maven.aliyun.com/repository/spring-plugin" }
maven { url "https://repo.spring.io/libs-release" }
maven { url "https://repo.spring.io/milestone" }
// 添加 snapshots 库地址
maven { url "https://oss.sonatype.org/content/repositories/snapshots" }
mavenCentral()
}
2
3
4
5
6
7
8
9
10
11