Spring boot
javafanwk
专注微服务架构,熟悉react、大数据、云计算,喜欢看java编程思想,设计模式,算法等书,希望通过我的努力减少代码量,提高java的标准化,提高程序的稳定度,认真搞技术,一直在路上,希望大家共同前行,进步。。。
展开
-
使用POI读取word文档内容
1.pom.xml 中新增 <dependency> <groupId>org.apache.poi</groupId> <artifactId>poi</artifactId> <version>4.0.0</version>...原创 2019-10-06 10:47:34 · 1117 阅读 · 0 评论 -
springboot处理前台字符串日期自动转换成后台date类型
思路: 当前台提交日期格式数据到后台保存时,一般以字符串的形式传输,如果后台是data类型接收就会报错@JsonFormat (timezone = "GMT+8", pattern = "yyyyMMddHHmmss"):出参DateTimeFormate : 入参1、先用字符串接受在转换为data类型2.使用@DateTimeFormat(pattern = “yyyy-MM-dd HH:mm...原创 2018-06-15 10:27:50 · 9247 阅读 · 0 评论 -
Callable和DeferredResult
DeferredResult和Callable都是为了异步生成返回值提供基本的支持。简单来说就是一个请求进来,如果你使用了DeferredResult或者Callable,在没有得到返回数据之前,DispatcherServlet和所有Filter就会退出Servlet容器线程,但响应保持打开状态,一旦返回数据有了,这个DispatcherServlet就会被再次调用并且处理,以异步产生的方式,向...原创 2018-05-30 16:02:49 · 848 阅读 · 2 评论 -
将springboot的jar包注册为Linux服务
Apr 24, 2018 | springboot文章目录1. 开始配置1.1. 修改pom.xml1.2. 将程序打jar包放服务器上1.3. linux服务器注册服务linux下的jar包我们通常把它注册为服务,这样就可以通过命令开启,关闭以及保持开机启动。若要使用此功能,需要做以下步骤:开始配置修改pom.xml将pom.xml中关于spring-boot-maven-plugin的配置文件...原创 2018-06-15 10:28:23 · 832 阅读 · 0 评论 -
微服务互相调用-Feign
背景实际开发中我们经常会面临在同一个eureka注册中心下的各个微服务之间互相调用彼此的接口来获取预期的数据。通过Spring Cloud Feign,我们只需要创建一个接口并用注解的方式来配置它,即可完成对服务提供方的接口绑定。被调用服务及接口: hello-service服务的/hello接口。返回 hello world.主微服务:feign-consumer步骤修改pom.xml创建spr...原创 2018-06-13 10:38:25 · 10920 阅读 · 2 评论 -
Springboot 上传与下载
TDD设计模式一、Test类@RunWith(SpringRunner.class)@SpringBootTestpublic class UserControllerTest { @Autowired private WebApplicationContext wac; private MockMvc mockMvc; @Before public void setup() ...原创 2018-05-30 12:50:01 · 628 阅读 · 0 评论 -
Aop 日志切面
import java.util.Arrays;import org.aspectj.lang.JoinPoint;import org.aspectj.lang.annotation.After;import org.aspectj.lang.annotation.Aspect;import org.aspectj.lang.annotation.Before;import org...原创 2018-06-05 19:14:17 · 335 阅读 · 0 评论 -
Filter Interceptor Aspect区别
1、filter,这是java的过滤器,和框架无关的,是所有过滤组件中最外层的,从粒度来说是最大的。配置方式,有直接实现Filter+@component,@Bean+@configuration(第三方的filter)2、interceptor,spring框架的拦截器配置方式,@configuration+继承WebMvcConfigurationSupport...原创 2018-05-29 09:51:17 · 1791 阅读 · 1 评论 -
ajax中出现两次请求
在项目中发现ajax中出现两次请求,OPTIONS请求和GET请求,得到的数据出错,所以想要去掉OPTIONS请求。ajax请求如下: ajaxRequestGet: function (lastPath, requestParams, successFun) { $.ajax({ headers: { ...原创 2018-05-28 20:36:30 · 13061 阅读 · 0 评论 -
使用AOP统一处理Web请求日志
@Aspect@Componentpublic class WebLogAspect {private Logger logger = LoggerFactory.getLogger(getClass());@Pointcut("execution(public * com.itmayiedu.controller..*.*(..))")public void webLog() {}@Before...原创 2018-05-23 21:07:20 · 710 阅读 · 0 评论 -
springboot整合多数据源
多数据源产生的问题:事物管理在实际项目中,怎么样搭建多数据源 区分数据源举个例子 2个数据源 test001 test0021、分包结构com.baidu.test001 --访问test001数据库daoservicecom.baidu.test002 --访问test002数据库daoService分布式事物的解决方案jta+automatic传统项目 2、使用注解方式com.baidudao...原创 2018-05-23 21:06:36 · 438 阅读 · 0 评论 -
filter过滤类及其配置
filter过滤类 只能拿到http的请求和响应一、在类的上方添加@Component@Componentpublic class LoginFilter implements Filter {二、自定义配置类,作用和上方的一样,但是下边这种可以定义是否过滤和过滤的url列表 @Bean public FilterRegistrationBean timeFilter() {...原创 2018-05-28 16:52:32 · 1501 阅读 · 0 评论 -
Hibernate Validator 自定义校验型注解
目的:通过自定义校验型注释 实现@MyConstraint注解(根据数据库查询校验或其他自定义校验)一、bean代码public class User { private String id; @MyConstraint(message = "这是一个测试") @ApiModelProperty(value = "用户名") private String username; ...原创 2018-05-28 14:46:21 · 1669 阅读 · 0 评论 -
spring boot idea 启动多个项目
一、配置文件server.port=8082二、可以配置多个启动类原创 2018-05-23 18:04:31 · 1389 阅读 · 0 评论 -
Hibernate Validator 注解详解
原创 2018-05-28 10:59:46 · 351 阅读 · 0 评论 -
权限管理之一 原理
只要有用户参与的系统一般都要有权限管理,权限管理实现对用户访问系统的控制,按照安全规则或者安全策略控制用户可以访问而且只能访问自己被授权的资源。 权限管理包括用户认证和授权两部分。一、用户认证: 用户认证,用户去访问系统,系统要验证用户身份的合法性。最常用的用户身份验证的方法:1、用户名密码方式、2、指纹打卡机、3、基于证书验证方法。。系统验证用户身份合法,用户方可访问系...原创 2018-05-23 10:13:43 · 1618 阅读 · 0 评论 -
Hystrix 熔断机制、服务降级、服务限流、解决服务雪崩效应
一、什么是服务的雪崩效应所有的请求都在处理一个服务,造成其他服务不能访问。1.使用超时机制、服务降级(服务调用接口,如果发生错误或者超时,不让调用接口,调用本地fallback)2.熔断机制 类似保险丝 为了解决高并发请求,一旦达到规定请求,熔断,报错。----服务降级3.隔离机制--各个服务接口隔离开4.限流机制--nignx 使用网关 限流模式主要是提前对各个类型的请求设置最高的QPS阈值,...原创 2018-05-09 11:23:27 · 5347 阅读 · 3 评论 -
@NotEmpty、@NotBlank、@NotNull的区别
@NotEmpty 用在集合类上面 @NotBlank 用在String上面 @NotNull 用在基本类型上只有简单的结果,但是再更具体一点的内容就搜不到了,所以去看了看源码,发现了如下的注释:1. @NotEmpty /*** Asserts that the annotated string, collection, map or array is not {@code n...原创 2018-05-25 17:28:05 · 642 阅读 · 1 评论 -
Spring 支持的事务传播行为
只能支付第一本书, 不够支付第二本书:required:两本书都买不成required new:第一本能买成 第二本回滚了原创 2018-06-06 17:48:37 · 425 阅读 · 0 评论 -
idea activiti报错no processes deployed with key 'leave'
出错原因:processes目录下leave.xml改为leave.bpmn问题解决2018-06-01 16:18:36.968 ERROR 9876 --- [nio-8081-exec-1] o.a.c.c.C.[.[.[.[dispatcherServlet] : Servlet.service() for servlet [dispatcherServlet] in conte...原创 2018-06-01 16:54:48 · 15538 阅读 · 1 评论 -
application.properties 常用属性列表
# ===================================================================# COMMON SPRING BOOT PROPERTIES## This sample file is provided as a guideline. Do NOT copy it in its# entirety to your own appl...原创 2018-06-20 12:55:58 · 1718 阅读 · 1 评论 -
使用RestTemplate时报错java.lang.IllegalStateException: No instances available for 127.0.0.1
java.lang.IllegalStateException: No instances available for xxx at org.springframework.cloud.netflix.ribbon.RibbonLoadBalancerClient.execute(RibbonLoadBalancerClient.java:75) at org.spring...原创 2019-08-19 16:41:30 · 1036 阅读 · 0 评论 -
拷贝赋值的几种思路(当更新时会把字段为空的值赋值给对象)
目的:当更新时会把字段为空的值赋值给对象一、copyPropertiesignoreProperties 需要忽略的属性值public static void copyProperties(Object source, Object target, String... ignoreProperties) throws BeansException { copyProper...原创 2019-08-07 10:49:39 · 486 阅读 · 0 评论 -
MapStruct学习笔记
DTO就是做数据传输对象的,类似于VO,但是VO用于传输到前端。通用的方式是需要用到的属性封装成一个类(DTO),通过传输这个类的实例来完成数据传输。需要数据库字段到DTO做一个映射import org.mapstruct.Mapping;/** * Mapper for the entity {@link QRequest} and its DTO {@link NewC...原创 2019-08-02 14:15:54 · 492 阅读 · 0 评论 -
liquibase 问题汇总
Liquibase是数据库版本管理工具,设定的概念是把数据库schema的变动(table的建立,column的变动,index变动…)及数据内容的变动(insert,update,delete)用Liquibase定义的语法写成xml格式change log,然后在数据库里多建立一个名为databasechangelog的table,用来记录db更新了那些change log,当xml新增了更多...原创 2019-07-31 16:12:39 · 7082 阅读 · 3 评论 -
报错Failed to instantiate [java.util.List]: Specified class is an interface
错误信息:Failed to instantiate [java.util.List]: Specified class is an interface;分析:批量删除时,Controller层参数想传入List<Long> ids,然而如果泛型是基本类型或者String,就会报错。添加@RequestParam注解(以前是没有加的) @ApiOperation(va...原创 2019-06-27 18:38:32 · 15821 阅读 · 3 评论 -
常用的自动装配注解@Autowired @RequiredArgsConstructor @AllArgsConstructor
《spring实战》中给装配下了一个定义:创建应用对象之间协作关系的行为称为装配。也就是说当一个对象的属性是另一个对象时,实例化时,需要为这个对象属性进行实例化。这就是装配。如果一个对象只通过接口来表明依赖关系,那么这种依赖就能够在对象本身毫不知情的情况下,用不同的具体实现进行切换。但是这样会存在一个问题,在传统的依赖注入配置中,我们必须要明确要给属性装配哪一个bean的引用,一旦...原创 2019-06-11 14:27:13 · 23852 阅读 · 1 评论 -
spring boot 注解 @Value null 原因和解决方案
问题:在一个普通类中,通过@Value来映射配置文件的值,得到的总是null原因:应该是用容器注册(@Autowried)的方式使用此类,就能得到配置文件里的值(new创建的也不能获取)代码如下:@Component:定义Spring管理Bean@Data@Componentpublic class RmaReturnYml { @ApiModelProperty...原创 2019-06-04 17:12:57 · 7254 阅读 · 1 评论 -
Springboot 中同一位置application.yml和bootStrap.yml 的加载顺序
若application.yml 和bootStrap.yml 在同一目录下,则bootStrap.yml 的加载顺序要高于application.yml,即bootStrap.yml 会优先被加载。 原理:bootstrap.yml 用于应用程序上下文的引导阶段。 bootstrap.yml 由父Spring ApplicationContext加载。...原创 2019-05-10 19:42:21 · 2661 阅读 · 0 评论 -
lombok构造模式
lombok构造模式这种方法比自己写Builder类方便多了@Data@Builder@NoArgsConstructor@AllArgsConstructorpublic class DemoModel { private String name; private int age; private int start; private i...原创 2019-05-10 11:13:16 · 3936 阅读 · 0 评论 -
be delegated to target bean. Switch its visibility to package or protected.
Singleton bean creation not allowed while singletons of this factory are in destruction (Do not request a bean from a BeanFactory in a destroy method implementation!)错误的原因 我调用的方法是private 改为pubic或...原创 2019-01-02 15:14:55 · 5671 阅读 · 2 评论 -
禁止将MySQL的保留关键字作为属性
项目中用spirngdata 将 CONDITION 作为属性sql报错1.不要将mysql关键字用作属性 实在要使用的话加上反引号select name,`condition` from products where id=”+id2.采用以下的方式 /*** 备件状态*/@Column(name = "materialCondition")private Strin...原创 2018-12-28 15:34:55 · 1557 阅读 · 0 评论 -
javax.persistence.EntityNotFoundException: Unable to find 类 with id ?
EntityNotFoundException类 with id --- 可以通过这个类对应的表找到这个id即可无论是@OneToOne 还是@ManyToOne,出现这个原因都是因为子表(被关联表)中没有主表(关联表)中ID所对应的记录。@ManyToOne( cascade=CascadeType.ALL)@JoinColumn(name = "InventoryId" ) ...原创 2018-12-28 15:27:02 · 4719 阅读 · 0 评论 -
属性校验
@Pattern(regexp="([1-9]?\\d|100)$", message="数字介于0-100") @ApiModelProperty(notes = "比例(%)") private String proportion; Bean Validation 中内置的 constraint 每个注解都可能性有一个message属性,用于在验证失败...原创 2018-08-16 19:26:20 · 643 阅读 · 0 评论 -
java.lang.IllegalStateException: Cannot call sendError() after the response has been committed 报错信息
try { OutputStream out=response.getOutputStream(); // 执行导出 downLoadResellerSignStatus(out,ss);} catch (Exception e) { e.printStackTrace();}return resultVOBuilder.success("成功");改...原创 2018-08-15 10:42:34 · 2508 阅读 · 0 评论 -
springboot——@Import,@ConditionalOn
SpringBoot 的 @Import 用于将指定的类实例注入之Spring IOC Container中。public class Name{}@Component@Import({Name.class})/** *使用Import 将指定的类的实例注入至Spring 容器中 */public class ImportDirect {}代码解读:使用 @Import({Na...原创 2018-06-27 16:51:12 · 782 阅读 · 0 评论 -
SpringBoot——SpringMvc自动配置与扩展
一、以前xml配置<mvc:annotation-driven message-codes-resolver ="bean ref" validator="" conversion-service=""></mvc:annotation-driven>现在改为:@Configurationpublic class MyWebMvcConfigurer implemen...原创 2018-06-27 16:30:09 · 1449 阅读 · 0 评论 -
springboot时差,data返回值,日期转换
一、部署到liunx服务器上有8小时的时间差。 解决方案 在 application.properties 文件里面添加 spring.jackson.time-zone=GMT+8二、如果 从controller 返回出来的时间数据需要直接成 固定的String 格式 需要在application.properties 添加如下配置 spring.jackson.date-for...原创 2018-06-27 15:24:37 · 1724 阅读 · 0 评论 -
@JsonView注解
使用接口来声明多个视图package org.byron4j.springMVC4_rest_jackson_jsonview_annotation; public class Profile { public interface PublicView {} public interface FriendsView extends PublicView{} public...原创 2018-05-25 16:35:07 · 806 阅读 · 0 评论 -
Spring Security
配置Spring Security@Configurationpublic class WebSecurityConfig extends WebSecurityConfigurerAdapter { @Bean UserDetailsService customUserService() { return new CustomUserService(); ...原创 2018-05-21 18:07:33 · 150 阅读 · 0 评论