文章插图
添加mybatis-plus和mysql相关依赖如下:
<dependency><groupId>org.noear</groupId><artifactId>mybatis-plus-extension-solon-plugin</artifactId></dependency><dependency><groupId>com.zaxxer</groupId><artifactId>HikariCP</artifactId><version>4.0.3</version></dependency><dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId><version>8.0.18</version></dependency>
app.yml文件增加数据源和mybatis-plus的配置test.db1:schema: rockjdbcUrl: jdbc:mysql://192.168.40.100:3308/test?useUnicode=true&characterEncoding=utf8&autoReconnect=true&rewriteBatchedStatements=truedriverClassName: com.mysql.cj.jdbc.Driverusername: rootpassword: 123456##默认mybatis.db1:typeAliases:#支持包名 或 类名(.class 结尾)- "demo4031.model"mappers:#支持包名 或 类名(.class 结尾)或 xml(.xml结尾 或 *.xml 结尾)- "demo4031.dso.mapper"#- "demo4031/dso/*.xml"configuration:cacheEnabled: falsemapUnderscoreToCamelCase: truelogImpl: org.apache.ibatis.logging.nologging.NoLoggingImplglobalConfig:banner: falsemetaObjectHandler: "demo4031.dso.MetaObjectHandlerImpl"dbConfig:logicDeleteField: "deleted"logicDeleteValue: "2"
mapper接口和mapper.xml文件与Spring整合Mybatis基本相同@Mapperpublic interface AppxMapper {AppxModel appx_get();Page<AppxModel> appx_get_page(Page<AppxModel> page);AppxModel appx_get2(int app_id);void appx_add();Integer appx_add2(int v1);@Select("SELECT * FROM INFORMATION_SCHEMA.TABLES")List<DbTable> listTables();}
再添加业务的Service和实现类,最后添加PlusController控制器实现@Mapping("/plus/")@Controllerpublic class PlusController {@InjectAppServicePlus appServicePlus;@Mapping("test")public AppxModel test() {return appServicePlus.getById(2);}}
添加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);}}
启动程序后日志输出如下文章插图
访问http://localhost:8080/plus/test,返回正确的结果
文章插图
访问http://localhost:8080/page/test ,返回正确的分页结果
文章插图
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启动类开启enableWebSocketpublic 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后日志输出如下文章插图
访问http://localhost:8080/ 输入发送信息后服务端打印收到的输入信息
文章插图
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;}}
推荐阅读
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Python 3.12 目标:还可以更快!
- 两道超有意思的 CSS 面试题,试试你的基础
- 鱼苗怎么养会长的更快
- 要简单就试试走路减肥法吧
- 教师编制考试试题及答案 教师编制考试试题
- 从纪王到上海南站怎么走?
- 小米分期怎么开通?大家可以这么试试!
- 重庆驾照考试模拟试题 重庆驾考理论考试试题
- 长春交规模拟考试题库 交规考试试卷
- 怎么让学车变得更容易 怎么学车更快