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 个页面。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。