架构设计详细思路:https://www.jiagou.com/post/58-cloud-native-service-mesh
springrain-system-serviceimpl添加springrain-grpc-server依赖,启用org.springrain.SystemServiceImplApplication的@SpringBootApplication注解
https://gitee.com/chunanyong/springrain/tree/master/springrain-system/springrain-system-web/doc
https://gitee.com/chunanyong/springrain/tree/master/springrain-gencode
https://gitee.com/chunanyong/springrain/tree/master/springrain-system/springrain-system-web/sql
//就极简而言,一个数据库只需要一个Service,就可以管理这个数据库的任意一张表 //@Test 查询基本类型 public void testObject() throws Exception{ // Finder finder=new Finder("select id from t_user where 1=1 "); Finder finder=Finder.getSelectFinder(User.class,"id").append(" WHERE 1=1 "); finder.append("and id=:userId").setParam("userId", "admin"); String id = baseDemoService.queryForObject(finder, String.class); System.out.println(id); } //@Test 查询一个对象 public void testObjectUser() throws Exception{ //Finder finder=new Finder("select * from t_user where id=:userId order by id"); Finder finder=Finder.getSelectFinder(User.class).append(" WHERE id=:userId order by id desc "); finder.setParam("userId", "admin"); User u = baseDemoService.queryForObject(finder, User.class); System.out.println(u.getName()); } //@Test 查询分页 public void testMsSql() throws Exception{ //Finder finder=new Finder("select * from t_user order by id"); Finder finder=Finder.getSelectFinder(User.class).append(" order by id desc "); Listlist = baseDemoService.queryForList(finder, User.class, new Page(2)); System.out.println(list.size()); for(User s:list){ System.out.println(s.getName()); } } //@Test 调用数据库存储过程 public void testProc() throws Exception{ Finder finder=new Finder(); finder.setParam("unitId", 0); finder.setProcName("proc_up"); Map queryObjectByProc = (Map) baseDemoService.queryObjectByProc(finder); System.out.println(queryObjectByProc.get("#update-count-10")); } //@Test 调用数据库函数 public void testFunction() throws Exception{ Finder finder=new Finder(); finder.setFunName("fun_userId"); finder.setParam("userId", "admin"); String userName= baseDemoService.queryForObjectByByFunction(finder,String.class); System.out.println(userName); }
#4.0.0之后基于SpringBoot最新版本,启动类修改为SpringBoot的org.springrain.SpringrainApplication类进行启动. 项目名为springrain[春雨]我的个人博客是 http://www.weicms.net QQ群是:238904840 文档 代码生成器 sql脚本 springrain是spring/springboot的极简封装,spr
项目名为springrain[春雨]我的个人博客是 http://www.9iu.org #demo http://springrain.9iu.org #文档 http://git.oschina.net/chunanyong/springrain/raw/master/springrain/doc/springrain.pdf #代码生成器 http://git.oschina.net/chu
项目迁移到: http://git.oschina.net/chunanyong/springrain demo: http://springrain.9iu.org 文档 http://git.oschina.net/chunanyong/springrain/raw/master/springrain/doc/springrain.pdf springrain本身就是一个完整的eclipse项
经过2个月的测试修改,springrain1.1已经稳定,今日发布. 主要改动如下: 1.添加批量更新和保存的方法 2.添加maven分支 3.添加博客管理的demo 4.增加redis做为缓存实现 5.修改页面和代码生成器模版细节. 转载于:https://www.cnblogs.com/shihao/p/3384336.html
http://www.9iu.org/2013/12/11/springrain2-basetable.html springrain开源项目 springrain技术详解(1)-shiro基本权限控制 springrain技术详解(2)-权限表结构 springrain技术详解(3)-shiro的filterChainDefinitions springrain技术详解(4)-shiro的缓存
// testzorm 使用原生的sql语句,没有对sql语法做限制.语句使用Finder作为载体 // 占位符统一使用?,zorm会根据数据库类型,自动替换占位符,例如postgresql数据库把?替换成$1,$2... // zorm使用 ctx context.Context 参数实现事务传播,ctx从web层传递进来即可,例如gin的c.Request.Context() // zorm的
因为是权限拦截校验,很多方法调用的频率是非常频繁的,为了更好的性能,shiro拥有一套完整的缓存体系,特别是针对web领域,做了部分增强. 先看下缓存在shiro的权限管理器中的配置: 01 <!-- 权限管理器 --> 02 <bean id="securityManager" class="org.apache.shiro.web.mgt.DefaultWebSecurityManager">
http://git.oschina.net/chunanyong/springrain 转载于:https://www.cnblogs.com/woodynd/p/4034151.html
最近刚刚接触微服务相关的知识,想问一下微服务与golang推崇的云原生有什么异同,能否从宏观上对微服务与云原生概念进行一个区分?
本教程是一个关于Python微服务的实战教程,根据测试驱动开发(TDD)的指导思想,开发容器化的Python微服务应用,涉及 TDD、Flask、React、Docker、微服务 等知识点。 在这个课程中,你将学习如何使用Docker快速创建开发环境、管理多个微服务,应用程序在本地运行后,您将学习怎样在生产环境部署应用。我们也会练习TDD(测试驱动开发),在你的项目中测试先行,我们重点将放在服务端
如何将具有approle[in vault]的微服务连接到具有vault后端的Spring Cloud Config Server。 我可以看到使用根令牌的示例,如curl-x GET http://localhost:8888/my-service/default-h“x-config-token:s.tmqara2lasdnhjzqqzy7y8px”。但是我找不到任何使用approle连接sp
基本 Nest 微服务是一种使用与HTTP不同的传输层的应用程序。 安装 首先,我们需要安装所需的软件包: $ npm i --save @nestjs/microservices 概述 通常,Nest支持一系列内置的传输器。它们基于 请求-响应 范式,整个通信逻辑隐藏在抽象层之后。多亏了这一点,您可以轻松地在传输器之间切换,而无需更改任何代码行。我们不支持具有基于日志的持久性的流平台,例如 Ka
我使用spring boot Framework创建了一个REST微服务。 我还创建了一个Eureka服务器作为另一个Spring Boot项目。并且我向Eureka服务器注册了微服务。 和我为Zuul创建了另一个Spring启动项目。这个项目也注册到Eureka服务器。 我的Eureka服务器正在运行2个注册的Spring Boot项目。Eureka服务器UI正常工作。 这里我的困惑是,我是按照
作为spring boot和microservices架构的新手,尝试使用spring boot cloud starter构建一个简单的应用程序。 我使用了来外部化配置文件(. Properties) 我这里有一个spring云配置,它带来了。来自git存储库和另一个微服务(产品微服务)的属性文件试图从spring云配置服务器访问其配置。 一切正常,除了属性抛出(在第二个微服务中) 以下是配置文