信创啊信创。Solon 双同时支持 jakarta.servlet 容器了!
Solon 是个神奇的框架,不是基于 Servlet 的。但是又很支持 Servlet,尤其是 war 包。打起来还挺方便的。 如果你是做信创的(听说,很多信创项目是用 war 部署到 tomcat 容器下的;而且都要用国产的开源框架)。自从 javaee 改包名后,那个苦啊。但是,Solon 可以用一样的开发,双同时支持(而且同时支持java8, java11, java17, java20):
- javax.servlet
- jakarta.servlet
强调一下,Solon 是推荐 fatjar 打包的框架(当然想打什么,都能打)。支持 war 打包,主要是用户有需求,尤其是信创项目有需求。那为什么能同时支持两套包呢?是这样的:
- 因为 solon 不是基于 Servlet 的。有自己的专有 web 接口规范,可适配一切
- 开发时,用的是 solon 的接口规范。打包的时候把适配包带上
下面讲讲 solon 的 war 打包:
1、操作指南:
在普通项目增加几项内容即可打 war 包(仍可打 jar 包):
- 添加 webapp/WEB-INF/web.xml 配置(参考模板里的内容)
- 添加 solon.web.servlet(for javax)或者 solon.web.servlet.jakarta(for jakarta)插件依赖
- 使用 solon-maven-plugin 或者 maven-war-plugin 打包
具体模板下载:
打包成 war,需要放到 war 容器下运行(比如:tomcat, weblogic)
2、具体说明:
a) 添加 webapp/WEB-INF/web.xml 配置,把 solonStartClass 的参数值改成 main 函数类
<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.4" xmlns="http://java.sun.com/xml/ns/j2ee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
<display-name>Solon war app</display-name>
<context-param>
<param-name>solonStartClass</param-name>
<param-value>org.example.demo.DemoApp</param-value>
</context-param>
<listener>
<listener-class>org.noear.solon.web.servlet.SolonServletContextListener</listener-class>
</listener>
<welcome-file-list>
<welcome-file>/</welcome-file>
</welcome-file-list>
</web-app>
b) 添加 solon.web.servlet 插件依赖
提供 servlet 容器对接支持。注意下面的包注释说明:
<!-- javax 的用这个包 -->
<dependency>
<groupId>org.noear</groupId>
<artifactId>solon.web.servlet</artifactId>
</dependency>
<!-- jakarta 的用这个包(v2.4.1 后支持) -->
<dependency>
<groupId>org.noear</groupId>
<artifactId>solon.web.servlet.jakarta</artifactId>
</dependency>
c) 使用 solon-maven-plugin 或者 maven-war-plugin 打包
solon-maven-plugin 同时支持打 jar 和 war(由 packaging 配置指定)
<packaging>war</packaging>
...
<plugin>
<groupId>org.noear</groupId>
<artifactId>solon-maven-plugin</artifactId>
</plugin>
或者 maven-war-plugin,它只支持打 war 包
<packaging>war</packaging>
...
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-war-plugin</artifactId>
<version>3.3.2</version>
</plugin>
Solon 是什么开源项目?
一个,Java 新的生态型应用开发框架。它从零开始构建,有自己的标准规范与开放生态(历时五年,已有全球第二级别的生态规模)。与其他框架相比,它解决了两个重要的痛点:启动慢,费内存。
关键记事:
- 2021年1月,正式对外开源
- 2022年7月,建立官网,发力推广
- 2023年2月,v2.0 发布。官网增加 Solon Initializr,用于生成项目模板。
- 2023年4月,成为信通院可信开源社区、可信开源项目。Maven 单月下载量突破100万。代码提交数超 11000 次
- 2023年6月,Maven 单月下载量突破200万。官网资料超 500 个页面。
项目仓库地址?
信创啊信创。Solon 双同时支持 jakarta.servlet 容器了!信创啊信创。Solon 双同时支持 jakarta.servlet 容器了!信创啊信创。Solon 双同时支持 jakarta.servlet 容器了!信创啊信创。Solon 双同时支持 jakarta.servlet 容器了!信创啊信创。Solon 双同时支持 jakarta.servlet 容器了!信创啊信创。Solon 双同时支持 jakarta.servlet 容器了!信创啊信创。Solon 双同时支持 jakarta.servlet 容器了!信创啊信创。Solon 双同时支持 jakarta.servlet 容器了!信创啊信创。Solon 双同时支持 jakarta.servlet 容器了!