不妨试试更快更小更灵活Java开发框架Solon( 三 )

添加mybatis-plus分页的PageController控制器实现
@Mapping("/page/")@Controllerpublic class PageController {@DbAppxMapper appxMapper;@Mapping("test")public Object test() throws Throwable {Page<AppxModel> page = new Page<>(2, 2);return appxMapper.appx_get_page(page);}}启动程序后日志输出如下

不妨试试更快更小更灵活Java开发框架Solon

文章插图
访问http://localhost:8080/plus/test,返回正确的结果
不妨试试更快更小更灵活Java开发框架Solon

文章插图
访问http://localhost:8080/page/test ,返回正确的分页结果
不妨试试更快更小更灵活Java开发框架Solon

文章插图
Solon WebSocket示例引入依赖
<dependency><groupId>org.noear</groupId><artifactId>nami</artifactId></dependency><dependency><groupId>org.noear</groupId><artifactId>solon.socketd.client.websocket</artifactId></dependency>简单几行代码就实现WebSocket的服务端编程
@ServerEndpoint(value = "https://www.huyubaike.com/ws/demo/{id}")public class WebSocket implements Listener {@Overridepublic void onOpen(Session session) {//path varString id = session.param("id");//query varString token = session.param("token");/*此处可以做签权;会话的二次组织等...*/}@Overridepublic void onMessage(Session session, Message message) throws IOException {//message.setHandled(true); //设为true,则不进入mvc路由session.send("你发了:" + message.bodyAsString());}}然后通过一个debug.htm通过javascript实现WebSocket收发功能,App启动类开启enableWebSocket
public class App {public static void main(String[] args) {//// 启动Solon,并开启WebSocket监听;同时添加/路径跳转//Solon.start(App.class, args, app -> app.enableWebSocket(true)).get("/", c -> {c.redirect("/debug.htm");});}}启动App后日志输出如下
不妨试试更快更小更灵活Java开发框架Solon

文章插图
访问http://localhost:8080/ 输入发送信息后服务端打印收到的输入信息
不妨试试更快更小更灵活Java开发框架Solon

文章插图
Solon Remoting RPC示例RPC的实现分为3个模块,RPC提供者的实现、公共模块、服务消费者,公共模块存放数据模型和接口,可以同时提供给提供者和消费者引用 。
服务提供者添加solon-rpc依赖
<dependency><groupId>org.noear</groupId><artifactId>solon-rpc</artifactId></dependency>服务提供者通过@Remoting注解实现RPC服务,代码如下
@Mapping("/user/")@Remotingpublic class UserServiceImpl implements UserService {@Overridepublic UserModel getUser(Integer userId) {UserModel model = new UserModel();model.setId(userId);model.setName("user-" + userId);return model;}}服务消费者添加如下依赖
<dependency><groupId>org.noear</groupId><artifactId>solon-rpc</artifactId></dependency><dependency><groupId>org.noear</groupId><artifactId>solon.cloud</artifactId></dependency>app.yml配置文件配置服务发现的地址,也即是服务提供者提供的地址
server.port: 8080solon.app:name: demoappgroup: demosolon.cloud.local:discovery:service:local:- "http://localhost:8081"通过@NamiClient注解实现RPC远程方法的调用
@Controllerpublic class UserController {//使用负载@NamiClient(name = "local",path = "/user/")UserService userService;@Mapping("test")public UserModel test() {UserModel user = userService.getUser(100);System.out.println(user);return user;}}启动服务提供者和服务消费者
不妨试试更快更小更灵活Java开发框架Solon

经验总结扩展阅读