Java相关
Spring Data Jpa, SSM框架,安全框架Shiro、SpringSecurity, JWT认证鉴权, mybatis, tomcat, java面试题, 阿里云OSS上传文件,Dubbo框架
Take^that
可控的事情要谨慎,不可控的事情要乐观。
展开
-
dubbo服务集群实现负载均衡
当某个服务并发量特别大的时候,一个服务延迟太高,我们就需要进行服务集群,例如某个项目一天注册量10万,这个注册功能就必须要进行集群了,否则一个服务无法应付这么大的并发量;dubbo的服务集群很简单,只需要配置文件里改个端口即可,其他代码不需要动;企业级项目多个服务集群,每个服务都放不同机器,全部启动并注册到zookeeper注册中心,不仅能实现负载均衡,也能进行容错;就算一个机器挂了,其他机器可以继续服务;多个服务也可以在控制台进行权重的设置,来动态设置请求分发量;下面简单在本机测试一下1.启动第转载 2021-10-01 08:50:28 · 147 阅读 · 0 评论 -
消费Dubbo服务
前提是启动zookeeper,并发布bubbo服务地址:zookeeper安装,springboot发布Dubbo服务控制台如下图:前面发布的服务就是用来消费的,所以我们这里来调用服务,消费下,下面创建maven项目 dubbo-demo-consumer1. 引入依赖<dependencies> <dependency> <groupId>com.alibaba</groupId> <artifact转载 2021-09-29 22:59:05 · 123 阅读 · 0 评论 -
zookeeper安装,springboot发布Dubbo服务
前提是先把zookeeper安装好,参考博客:zookeeper安装1.添加依赖首先创建一个maven项目dubbo-demo-providerpom.xml加入依赖:<dependencies> <dependency> <groupId>com.alibaba</groupId> <artifactId>dubbo</artifactId> <version&g转载 2021-09-28 20:39:40 · 190 阅读 · 0 评论 -
dubbo接口抽取及依赖版本统一
参考博客地址:接口抽取及依赖版本统一接口抽取以及依赖版本统一后如下图:源码和视频参考网址:添加链接描述转载 2021-09-30 22:26:23 · 117 阅读 · 0 评论 -
Dubbo Admin管理控制台
Dubbo入门Dubbo学习总结1. 下载war包在github可以找到,apache/dubbo在dubbo发布包里,有个admin项目,我们可以把这个项目打成war包 然后 发布到tomcat运行;这里提供打包后的war包 直接下载,链接: 百度网盘下载war包密码:ck4h2. 解压war包至tomcat的ROOT目录这里直接给出最佳实践方法:用解压缩软件 解压war包解压出来的内容全部放到tomcat的ROOT目录里面,如下图:这样我们启动tomcat,首页就是dubbo a转载 2021-09-28 21:44:48 · 131 阅读 · 0 评论 -
Jpa+EasyUI 实现 “日志管理” (@JsonSerialize、对象级联、initBinder、datetimebox、@Temporal)
一、写在前面,需要注意的几点1.@JsonSerialize注解此注解用于属性或者getter方法上,用于在序列化时嵌入开发者自定义的代码。使用时先 自定义日期序列化类,比如CustomDateTimeSerializer ,然后再在实体的get方法上加上@JsonSerialize(using = CustomDateTimeSerializer .class)2.对象级联大致是这意思...原创 2019-09-03 22:53:31 · 326 阅读 · 0 评论 -
JPA报错:No serializer found for class org.hibernate...... no properties discovered to create BeanSeria
具体报错信息:Type definition error: [simple type, class org.hibernate.proxy.pojo.bytebuddy.ByteBuddyInterceptor]; nested exception is com.fasterxml.jackson.databind.exc.InvalidDefinitionException: No serializer found for class org.hibernate.proxy.pojo.bytebuddy转载 2020-06-08 17:29:08 · 1542 阅读 · 0 评论 -
Hibernate级联操作,一对多、多对多、延迟加载lazy=“true“,proxy, no-proxy
主流 ORM 框架 Object Relation Mapping 对象关系映射,将⾯向对象映射成⾯向关系。如何使⽤1、导⼊相关依赖2、创建 Hibernate 配置⽂件3、创建实体类4、创建实体类-关系映射⽂件5、调⽤ Hibernate API 完成操作具体操作1、创建 Maven ⼯程,pom.xml<dependencies> <dependency> <groupId>mysql</groupId> <artifac转载 2020-08-16 15:05:28 · 324 阅读 · 0 评论 -
Jpa+EasyUI 实现:左侧选中树形商品分类菜单的某个分类,右侧加载该类别下所有商品(级联的演示)
上一篇展示左侧树形商品分类菜单,链接:左侧商品分类树形菜单一、效果展示:选中一个类别,右侧加载出它的所有商品二、实现步骤:1.点击 分类菜单某个 类别,触发事件:请求后台:2.controller:/** * 分页查询商品信息 * @param goods * @param page:当前页 * @param rows:每页记录数 * @return ...原创 2019-09-16 21:54:20 · 650 阅读 · 0 评论 -
JPA Predicate cb.or的简单使用(oninput动态即时搜索)
一、实现功能描述搜索框可根据商品名称或商品编码 动态、即时搜索商品:二、代码实现:1.oninput:function searchGoods(){ $("#dg").datagrid('load',{ "codeOrName":$("#s_codeOrName").val() }); }2.Controller:/** * 根据条件分页查询没有库存的商...原创 2019-09-21 10:18:18 · 3618 阅读 · 0 评论 -
Jpa+easyui 实现“用户管理”(Transient、ManyToOne、JoinColumn等注解、StringBuffer、Pageable、eval,$.inArray)
一、实现功能:原创 2019-09-02 17:35:45 · 381 阅读 · 0 评论 -
Jpa 懒加载 报错LazyInitializationException: could not initialize proxy - no Session
spring中的懒加载与事务–排坑记录转载 2020-06-21 11:55:40 · 409 阅读 · 0 评论 -
object references an unsaved transient instance - save the transient instance before flushing : com.
程序执行到下面 的“保存客户退货单商品”时报错了/*保存客户退货单 以及该客户退货单对应的客户退货单商品 * (non-Javadoc) * */ @Override public void save(CustomerReturnList customerReturnList, List<CustomerReturnListGoods> customerRetu...转载 2019-09-28 19:29:47 · 236 阅读 · 0 评论 -
Hibernate HQL查询对象、分⻚查询、where 条件查询、模糊查询、 order by、查询实体对象的属性、级联查询、占位符、级联查询
HQL:Hibernate Query Language,是 Hibernate 框架提供的⼀种查询机制,它和 SQL 类似,不同的是 HQL 是⾯向对象的查询语句,让开发者能够以⾯向对象的思想来编写查询语句,对 Java 编程是⼀种好友好的⽅式。HQL 不能直接参与数据库的交互,中间层语⾔。Java —》HQL —〉Hibernate —》SQL —〉DBHQL 只能完成查询、修改、删除,新增是⽆法操作的。1、查询对象查询表中所有数据,⾃动完成对象的封装,返回 List 集合。HQL 进⾏查询转载 2020-08-17 09:31:21 · 567 阅读 · 0 评论 -
Easyui 关于JSON.stringify、getRowIndex; datagrid的appendRow、updateRow、onDblClickRow 以及gson.fromJson
一、实现功能大致描述为:选择商品入库 可以选择多种进货单商品,然后凑成一个进货单,提交截图如下:1.点击添加,选择进货商品:2.选择一件商品:3.如果点击保存,进货入库的商品选择对话框会关闭,然后选择的进货商品会出现在进货单商品列表里面:4.同一个单号当然可以进货多种商品,下面再选择另外一种进货商品:5.选择保存后,进货单商品列表里面就有一下两种进货商品:6.点击保存...原创 2019-09-22 10:24:34 · 1042 阅读 · 0 评论 -
Jpa + EasyUI 递归构建 左侧商品分类菜单树(增加、删除分类;JsonArray 、JsonObject ...)
一、效果展示:二、代码实现:1.页面:<div data-options="region:'west',collapsible:false" style="width: 200px" title="商品类别" split=true> <ul id="tree" class="easyui-tree" style="padding: 10px"></ul&g...原创 2019-09-09 22:27:39 · 405 阅读 · 0 评论 -
Jpa + EasyUI 递归构建 菜单树 实现角色菜单设置(menuTree、jsonArray、join、split)
一、功能描述选择一个角色 为它赋予菜单权限该角色已经拥有的菜单权限 要默认都选中,另外需要传参该角色id:roleId二、菜单树的展示1.页面var url; function formatEdit(val,row){ return "<a href=\"javascript:openMenuSetDialog(" +row.id +")\"> <img...原创 2019-09-02 23:14:47 · 795 阅读 · 0 评论 -
将类属性设置为null 以防止出现 遍历json死循环 出现bug:将类属性设置为null后尚未保存,mybatis却自动将其自动更新为null,@JsonIgnore注解解决问题
bug场景演示:(商品进货)采购单表:(商品进货)采购单商品表:下面搜索商品采购信息:点击搜索请求的后台执行方法:/** * 根据条件获取商品采购信息 * @param purchaseList * @param purchaseListGoods * @return * @throws Exception */ @RequestMapping("/lis...原创 2019-10-13 11:31:34 · 252 阅读 · 0 评论 -
Hibernate配置⽂件hibernate.xml,dynamic-insert=“true“,dynamic-update=“true“,where,避免重复设置主外键约束关系
hibernate.xmlhibernate.xml 配置 Hibernate 的全局环境。<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE hibernate-configuration PUBLIC "-//Hibernate/Hibernate Configuration DTD 3.0//EN" "http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd"原创 2020-08-16 22:32:22 · 408 阅读 · 0 评论 -
JPA查询自定义字段报错 could not execute query....Column 'id' not found(thymeleaf遍历map、th:href)返回值类型改成Map
1.问题描述执行这句报错:@Query(value="SELECT DATE_FORMAT(include_date,'%Y年%m月') AS includeDateStr,COUNT(*) AS articleCount FROM t_article GROUP BY DATE_FORMAT(include_date,'%Y年%m月') ORDER BY DATE_FORMAT(inclu...转载 2019-11-14 22:51:07 · 1109 阅读 · 0 评论 -
repository执行修改操作即使加上@Modifying也会报错 Executing an update/delete query...
原来@Modifying需要和@Transactional配合使用才能正常使用。如下面代码所示:/** * 根据客户退货单id删除所有客户退货单商品 * @param customerReturnListId * @return */ @Query(value="delete FROM t_customer_return_list_goods WHERE customer_re...转载 2019-09-28 19:43:53 · 406 阅读 · 0 评论 -
jpa实体 保存或修改实体 报错 No serializer found for class org.hibernate.proxy.pojo disable SerializationFeature
1.问题描述:点击编辑:然后到后台查询并返回当前实体:结果 执行完 return resultMap后就报错了:HttpMessageConversionException: Type definition error: [simple type, class org.hibernate.proxy.pojo.bytebuddy.ByteBuddyInterceptor]; ne...原创 2019-11-30 14:04:26 · 437 阅读 · 0 评论 -
TemporalType.TIMESTAMP 显示年月日 时分秒
TemporalType.TIMESTAMP 精确到秒 年月日时分秒TemporalType.DATE 精确到天 年月日TemporalType.TIME 精确 时分秒 @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") @Temporal(TemporalType.TIMESTAMP) private Date updateTime;转载 2020-06-11 16:15:27 · 1829 阅读 · 0 评论 -
SSM整合shiro(Maven project)
一、引入依赖:<!-- 添加shiro支持 --> <dependency> <groupId>org.apache.shiro</groupId> <artifactId>shiro-core</artifactId> <version>1.2.4</version> </de...原创 2019-10-05 08:55:49 · 122 阅读 · 0 评论 -
Shiro登录验证流程
1.MyRealm.javaShiro登录流程简记:用户点击登录,把用户名和密码传到后台,最终会执行到MyRealm里面,它是通过用户名到数据库里面查找是否有这个实体,查到一个实体后,将它与用户输入的信息做比较,匹配失败控制台会报错的,也即是验证失败2.通过token这个参数可以获取前台用户的用户名和密码3.4.登录过程先请求到这里Subject.login(token) 会调...原创 2019-06-09 11:56:44 · 1019 阅读 · 0 评论 -
SpringSecurity 登录案例
一、引入依赖<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-security</artifactId></dependency>二、配置文件import org.springf...原创 2019-10-04 14:04:58 · 552 阅读 · 0 评论 -
项目中使用shiro @RequiresPermissions:注解 为登录用户授予权限
在这之前,Shiro的具体验证过程 链接:https://blog.csdn.net/qq_37767455/article/details/99771312和https://blog.csdn.net/qq_37767455/article/details/91351791下面完整代码地址:https://gitee.com/never_enough/jxc_system一、表设计...原创 2019-09-01 21:51:24 · 5369 阅读 · 0 评论 -
前后端分离项目 遇到请求跨域问题Access to XMLHttpRequest at......has been blocked by CORS policy: Response to
报错信息:Access to XMLHttpRequest at 'http://localhost/login' from origin 'http://xxx.xxx.x.x:8080' has been blocked by CORS policy: Response to preflight request doesn't pass access control check: It do...原创 2020-01-02 21:22:58 · 6362 阅读 · 2 评论 -
jwt token定时刷新
一、token定时刷新的意义因为登录后获得的token是有时间限制的,也即是有效期,刷新token一是可以延续token,二是可以保证安全,即使token被人截获 刷新token后也还是很安全的。二、大致实现步骤在前端登录后的主页 的公共模块或公共组件里面设置一个Interval,也即是每隔一定周期 去请求后台,通过先前的token得到一个新token,然后前端获取。三、代码实现:1....原创 2020-01-22 16:10:35 · 3529 阅读 · 1 评论 -
springboot拦截器实现权限认证 axios中get或post请求变成OPTIONS(遇到的Request Method: OPTIONS已解决)handler instanceof Hand
一、1.首先登录:Login.vueaxios.post(url,{"userName":this.userName,"password":this.password}) .then(response=>{ if(response.data.code==0) { //console.log(respo...原创 2020-01-21 16:22:02 · 3672 阅读 · 3 评论 -
Shiro 登录小案例 + 注销登录清掉session
输入用户名 密码登录2.controller接收3. 执行到subject.login(token)然后跳到自定义realm里面,如下图:上图中如果获取首体(当事人)user为空,那么用户不存在,直接return null如果不为空,说明输入的用户名有对应的用户存在,但该用户密码不一定正确,有待进一步确认如果密码确实不正确,return authcInfo 以后...原创 2019-08-19 22:58:21 · 1413 阅读 · 0 评论 -
为啥使用JWT? jwt介绍以及生成token实现
参考博客:JSON Web Token 入门教程一、跨域认证的问题互联网服务离不开用户认证。一般流程是下面这样。1、用户向服务器发送用户名和密码。2、服务器验证通过后,在当前对话(session)里面保存相关数据,比如用户角色、登录时间等等。3、服务器向用户返回一个 session_id,写入用户的 Cookie。4、用户随后的每一次请求,都会通过 Cookie,将 sessi...原创 2019-12-29 19:37:32 · 1097 阅读 · 0 评论 -
mybatis执行 insert语句使用ifnull
ifnull(p1,p2)如果p1有值就是p1,如果p1是空,则值为p2<insert id="insertForeach" parameterType="java.util.List" > insert into user_message ( skip_id,user_id ) values ...转载 2019-09-18 23:09:03 · 8100 阅读 · 0 评论 -
Context initialization failed org.springframework.beans.factory.BeanDefinitionStoreException: Failed
组件扫描 可能是 与jdk版本有关使用组件扫描器省去在spring容器配置每个controller类的繁琐。使用<context:component-scan自动扫描标记@controller的控制器类,配置如下:<context:component-scan base-package="cn.itcast.springmvc.ssm.controller"/...转载 2019-06-07 00:00:48 · 610 阅读 · 0 评论 -
mybatis 提取sql片段 (include标签 和 sql标签的简单使用)
sql标签用来封装SQL语句, include标签则是来调用1.在项目中有遇到sql片段的提取,代码是下面这样子的:<select id="getOrgConvInfo" parameterType="com.soft.sdd.othermgr.thirdCount.model.OrgConvSituationModel" resultType="com.soft.sdd.othermg...转载 2019-09-19 21:23:57 · 2972 阅读 · 0 评论 -
Mybatis 使用 @变量名:= 自定义 用户变量
参考博文链接:https://www.jianshu.com/p/f42fd10845af一、项目中 mapper文件里面碰到了 自定义用户变量,代码是这样的:<select id="getOrgConvInfo" parameterType="com.soft.sdd.othermgr.thirdCount.model.OrgConvSituationModel" resultTyp...转载 2019-09-19 21:55:42 · 9847 阅读 · 6 评论 -
使用@Param注解, 那么sql语句必须是 # ,不能用 $
原创 2019-06-07 00:05:04 · 857 阅读 · 0 评论 -
Mybatis There is no getter for property named 'XXX' in 'class java.lang.XXX ReflectionException
Mybatisorg.apache.ibatis.reflection.ReflectionExceptionMybatis查询使用Mybatis查询时,其参数可以是基本数据类型或者像Integer和String这样的简单的数据对象,也可以是复杂对象(一般是指JavaBean)或者map等,当使用基本数据类型的参数时,若这个参数的使用放在了判断条件中,如下查询语句:<select id...转载 2019-06-07 00:13:36 · 261 阅读 · 0 评论 -
BeanFactory not initialized or already closed - call 'refresh' before accessing beans解决办法
BeanFactory not initialized or already closed - call 'refresh' before accessing beans解决办法BeanFactory没有实例化或者已经关闭了,其实产生错误的原因很简单,在写:ApplicationContext ctx = new ClassPathXmlApplicationContext();时,没有指定...转载 2019-06-06 23:52:39 · 1180 阅读 · 0 评论 -
postman报错415:Resolved exception caused by Handler execution: ......HttpMediaTypeNotSupported
@Controller 注解类中,方法使用 @RequestBody 注解接收表单提交的参数抛出异常。...DefaultHandlerExceptionResolver : Resolved exception caused by Handler execution: org.springframework.web.HttpMediaTypeNotSupportedException: Con...转载 2020-01-14 15:16:18 · 2048 阅读 · 0 评论