代码拉取完成,页面将自动刷新
同步操作将从 noear/solon 强制同步,此操作会覆盖自 Fork 仓库以来所做的任何修改,且无法恢复!!!
确定后同步将在后台操作,完成时将刷新页面,请耐心等待。
QQ交流群:22200020 (同时招募项目参与人员:开发者,测试者,网官设计师等...)
一个插件式微型Web框架。
支持jdk8+,主框架90kb。组合不同的插件应对不同需求。
//Handler 模式:
public class App{
public static void main(String[] args){
XApp app = XApp.start(App.class,args);
app.get("/",(c)->c.output("Hello world!"));
}
}
//Controller 模式:
@XController
public class App{
public static void main(String[] args){
XApp.start(App.class,args);
}
@XMapping("/")
public Object home(XContext c){
return "Hello world!";
}
}
组件 | 说明 |
---|---|
org.noear:solon-parent | 框架版本管理 |
org.noear:solon | 主框架 |
组件 | 说明 |
---|---|
org.noear:solon-mvc | 可进行mvc开发的快速集成包 |
org.noear:solon-api | 可进行api 或 rpc 开发的快速集成包 |
boot插件 | 说明 |
---|---|
org.noear:solon.boot.jdkhttp | boot插件,对JKD 自带的HttpServer 适配,提供http 服务(不自带session state) |
org.noear:solon.boot.jlhttp | boot插件,对jlhttp 适配,提供http 服务(不自带session state) |
org.noear:solon.boot.nteeyhttp | boot插件,对Netty 适配,提供http 服务 |
org.noear:solon.boot.jetty | boot插件,对jetty 适配,提供http 服务(网友@khb提供) |
org.noear:solon.boot.undertow | boot插件,对undertow 适配,提供http 服务(网友@tyk提供) |
org.noear:solon.boot.smarthttp | boot插件,对smart-http 适配,提供http 服务(基于AIO实现) |
org.noear:solon.boot.websocket | boot插件,对java-websocket 适配,提供websocket 服务 |
org.noear:solon.extend.jetty.jsp | 扩展插件,为jetty 添加jsp 支持(不建议使用jsp)(网友@khb提供) |
org.noear:solon.extend.undertow.jsp | 扩展插件,为undertow 添加jsp 支持(不建议使用jsp)(网友@tyk提供) |
静态文件支持插件 | 说明 |
---|---|
org.noear:solon.extend.staticfiles | 扩展插件,添加静态文件支持(监视 resources/static 文件夹) |
Yaml配置支持插件 | 说明 |
---|---|
org.noear:solon.extend.properties.yaml | 扩展插件,添加yml配置文件支持 |
Session插件 | 说明(可将boot插件的session state服务,自动换掉) |
---|---|
org.noear:solon.extend.sessionstate.local | 扩展插件,本地session
|
org.noear:solon.extend.sessionstate.redis | 扩展插件,分布式session (其于redis 构建) |
序列化插件 | 说明 |
---|---|
org.noear:solon.serialization.fastjson | 视图插件,对 fastjson 适配,输出json 视图 或 序列化输出 |
org.noear:solon.serialization.snack3 | 视图插件,对 snack3 适配,输出json 视图 或 序列化输出 |
org.noear:solon.serialization.jackson | 视图插件,对 jackson 适配,输出json 视图 或 序列化输出 |
视图插件 | 说明(可置多个视图插件) |
---|---|
org.noear:solon.view.freemarker | 视图插件,对 freemarker 适配,输出html
|
org.noear:solon.view.jsp | 视图插件,对 jsp 适配,输出html
|
org.noear:solon.view.velocity | 视图插件,对 velocity 适配,输出html
|
org.noear:solon.view.thymeleaf | 视图插件,对 thymeleaf 适配,输出html
|
org.noear:solon.view.beetl | 视图插件,对 beetl 适配,输出html
|
org.noear:solon.view.enjoy | 视图插件,对 enjoy 适配,输出html
|
rpc client | 说明 |
---|---|
org.noear:solonclient | solon rpc client 与solon 的 rpc service 配对 |
外部框架适配 | 说明 |
---|---|
org.noear:cron4j-solon-plugin | cron4j 适配插件 |
org.noear:dubbo-solon-plugin | dubbo 适配插件 |
org.noear:mybatis-solon-plugin | mybatis 适配插件 |
<!-- http boot 插件;可以换成:.smarthttp 或 .jetty 或 .undertow 或自己定义个 -->
<dependency>
<groupId>org.noear</groupId>
<artifactId>solon.boot.jlhttp</artifactId>
<version>1.0.5.11</version>
</dependency>
public class App{
public static void main(String[] args){
XApp app = XApp.start(App.class,args);
//http get 监听
app.get("/",(c)->c.output("hallo world!"));
}
}
<parent>
<groupId>org.noear</groupId>
<artifactId>solon-mvc</artifactId>
<version>1.0.5.11</version>
</parent>
//资源路径说明(不用配置)
resources/application.properties(或 application.yml) 为应用配置文件
resources/static/ 为静态文件根目标
resources/WEB-INF/view/ 为视图文件根目标(支持多视图共存)
//模板调试模式(或加热加载模式):
启动参数添加:-deubg=1
public class App{
public static void main(String[] args){
XApp.start(App.class, args);
}
}
/*
* mvc控制器
*/
@XController
public class DemoController{
//for http
@XMapping("/hallo/{u_u}")
public ModelAndView hallo(String u_u){
return new ModelAndView("hallo");
}
/*
//for web socket (需添加:solon.boot.websocket 插件)
@XMapping(value="/hallo/{u_u}", method = XMethod.SEND)
public ModelAndView hallo_ws(String u_u){
return new ModelAndView("hallo");
}
*/
}
/*
* rpc服务
*/
// - interface
@XClient("rpc:/demo/") // 或 demorpc (使用water提供的注册服务;当然也可以改成别的...)
public interface DemoRpc{
void setName(Integer user_id,String name);
}
// - server
@XMapping("/demo/*")
@XB(remoting = true)
public class DemoService implements DemoRpc{
public void setName(Integer user_id,String name){
}
}
// - client - 简单示例
DemoRpc client = new XProxy().upstream(n->"http://127.0.0.1").create(DemoRpc.class);
client.setName(1,'');
//非注入模式
XApp.cfg().get("app_key"); //=>String
XApp.cfg().getInt("app_id",0); //=>int
XApp.cfg().getProp("xxx.datasource"); //=>Properties
//注入模式
@XConfiguration //or @XController, or @XBean
class xxx{
@XInject("app_key")
String app_key;
}
solonplugin
/{包名.properties}此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。