spring
chushiyunen
这个作者很懒,什么都没留下…
展开
-
@RequestBody 入参中多字段或少字段会不会报错
@RequestBody 入参中多字段或少字段会不会报错原创 2022-11-28 18:36:44 · 1395 阅读 · 0 评论 -
stringRedisTemplate中ValueOperations设置值
stringRedisTemplate中ValueOperations设置值原创 2022-10-22 18:43:37 · 1404 阅读 · 0 评论 -
Spring Boot Actuator未授权访问漏洞笔记
文章目录场景解决方案方案一 配置健康检查遇到的问题方案二 配置security(略)场景公司安扫,发现很多项目有 Spring Boot Actuator未授权访问漏洞。描述:引入actuator的项目,很多路径未授权就可以访问。例如: /info、/beans等。实际这些都不应开放,最对只开放个健康检查/health。解决方案方案一 配置健康检查endpoints.enabled = falseendpoints.health.enabled = true对,你没看错,就是这么简单。原创 2022-04-26 07:51:22 · 4904 阅读 · 0 评论 -
java.net.URISyntaxException: Illegal character in scheme name at index 0: %7B%0D%0A%20%2
场景spring请求时报错:java.net.URISyntaxException: Illegal character in scheme name at index 0: %7B%0D%0A%20%20%20%20%22url%22:解决方案请求报文:{ "url": "http://s.longhu.net/record/2636160/jxindependent/jxindependent.war"}伪代码(没贴get、set):public class FileReque原创 2022-01-24 17:16:57 · 327 阅读 · 0 评论 -
spring多数据源配置(jdbcTemplate)
配置文件:spring.datasource.app.oracle.jdbc-url =jdbc:oracle:thin:@knight.com:1521/RACspring.datasource.app.oracle.username = appspring.datasource.app.oracle.password = 1234spring.datasource.app.oracle.driver-class-Name = oracle.jdbc.driver.OracleDriversp原创 2022-01-10 17:36:19 · 671 阅读 · 0 评论 -
druid监控页未授权访问漏洞修复笔记
场景安全人员提出:druid监控页未授权访问漏洞。http://ip:port/druid/login.html可以看到druid的信息。解决方案一般来说有两种方案:1、页面可以展示,但是肯定不能让任何人都看到。所以需要登录账户和密码。2、页面禁用掉,不对外展示。方案一添加如下代码即可:@Beanpublic ServletRegistrationBean druidStatViewServlet() { ServletRegistrationBean registration原创 2021-12-31 14:58:10 · 5888 阅读 · 0 评论 -
mybatis编辑sql报错:Cause: java.sql.SQLSyntaxErrorException: ORA-00909: 参数个数无效
场景oracle报错:Cause: java.sql.SQLSyntaxErrorException: ORA-00909: 参数个数无效解决方案这个报错一般是函数没有用对,举个实际遇到的例子,mybatis写sql。全模糊:concat(concat('%',#{comName}),'%')半模糊:concat('%',#{comName}) 开头模糊,结尾匹配concat(#{comName},'%') 开头匹配,结尾模糊concat(concat(’%’,#{comName})原创 2021-11-25 14:49:50 · 2917 阅读 · 3 评论 -
利用springCondition指定机器执行定时任务
场景项目每天5点需要执行一次定时任务,因为不频繁,根本不需要用redis锁。解决方案这里用spring的Condition,指定某个ip下的机器执行即可。Condition的原理,实现这个接口,重写matches方法,返回true则匹配成功,返回false则匹配失败。先写个工具类:public class TaskCondition implements Condition { private static Logger logger = LoggerFactory.getLogger(原创 2021-11-24 07:58:59 · 702 阅读 · 0 评论 -
spring集成redis哨兵模式、及切换为单点模式
不用引入额外的maven依赖。配置文件的改变。配置类的改变,redisconfig方面的配置。redis其实就用配置2方面,一个是config,一个是jedis链接池的配置。spring.redis.work.mode = 1spring.redis.database = 4spring.redis.password = 1234spring.redis.pool.max-active = 1024spring.redis.pool.max-wait = 10000spring.redis原创 2021-11-03 11:03:51 · 1398 阅读 · 1 评论 -
restTemplate发送https请求
场景restTemplate发送http请求时没问题,发送https请求时要求验证证书,造成请求失败。解决方案方案一 忽略证书验证新建一个SSL类,代码:public class SSL extends SimpleClientHttpRequestFactory { @Override protected void prepareConnection(HttpURLConnection connection, String httpMethod) th原创 2021-07-18 11:46:15 · 6635 阅读 · 1 评论 -
@RequestParam注解的使用
文章目录设置username为必填项,代码怎么写?defaultValue的作用是什么defaultValue可以设置为null吗?有人说,这么简单个注解还用说吗?额,这确实是个简单的注解。设置username为必填项,代码怎么写?那还不简单,加required=true啊:test400(@RequestParam(value = "username",required=true) String username)这样写对吗?当然是对的,但是不够简练 。因为required的默认值就是tr原创 2021-04-17 17:37:10 · 749 阅读 · 0 评论 -
spring设置上传文件大小
spring设置文件上传的大小。全局设置application.properties中这样设置:spring.http.multipart.max-file-size=10MB # 单个文件spring.http.multipart.max-request-size=10MB # 单次请求,例如一个请求有多文件application.yml中这样设置:spring: http: multipart: maxFileSize: 100Mb ma原创 2021-04-12 15:57:51 · 2520 阅读 · 1 评论 -
no suitable HttpMessageConverter found for response type [***] and content type [application/octet-
场景rest请求调用服务的时候报错,报错信息为:org.springframework.web.client.RestClientException: Could not extract response: no suitable HttpMessageConverter found for response type [class com.test.model.JsonResult] and content type [application/octet-stream]解决方案是默认的restTe原创 2021-03-27 12:10:39 · 2712 阅读 · 2 评论 -
报错:The bean ‘userMxMapper‘ could not be injected as a ‘com.test.UserMapper‘ because it is a JDK dyna
场景启动spring项目报错,提示:The bean ‘userMxMapper’ could not be injected as a ‘com.test.UserMapper’ because it is a JDK dynamic proxy that implements:解决方案一看就是注入有问题。这种情况一般出现在用的@Resource注解,并且变量名写错了,那么就会出现这种情况。因为@Resource默认是byName注入。...原创 2021-02-24 16:37:16 · 3661 阅读 · 0 评论 -
mybatis多入参的使用
parameterType必填吗如果只有一个参数,可以不填的。mybatis能够自动识别。一个对象,一个基本参数一个对象,一个基本参数这样可以吗?当然可以。public void ddd(@Param("name1") User user,@Param("name2) String string){ }然后xml中,用name1.xxx ,name2.xxx即可。...原创 2021-02-07 18:35:28 · 134 阅读 · 0 评论 -
常用数据库jdbc连接池的配置(在spring中的配置)
jdbc连接配置经常用到,那一串url确实不好记,这里汇总下,就好找了。oracle各种数据库之间,一般只有驱动和url不同。所以其他的库username,password就不写了。spring.datasource.driver-class-name=oracle.jdbc.driver.OracleDriverspring.datasource.url=jdbc:oracle:thin:@//www.test.com:1521/crmspring.datasource.type=com.al原创 2021-02-07 14:39:29 · 1239 阅读 · 2 评论 -
elastic-job 有没有java 接口去触发定时任务执行
maven引入:<dependency> <groupId>com.dangdang</groupId> <artifactId>elastic-job-lite-lifecycle</artifactId> <version>2.1.2</version></dependency>java代码为:(为了较好的展示,代码加了回车)JobOperateAPI jobAPIServi原创 2021-01-29 16:37:32 · 712 阅读 · 0 评论 -
spring @Value注解的使用
文章目录注入配置文件里面的属性直接注入字符串使用SpEl表达式注入注入操作系统属性注入容器中对象的属性基于对象注入注入文件注入网址内容注入配置文件里面的属性@value("${name}")private String name;使用冒号可以设置默认值,当属性不存在时使用默认值:@value("${name:zhangsan}")private String name;直接注入字符串@value("zhangsan")private String name;使用SpEl表达式注入原创 2021-01-29 11:11:23 · 2492 阅读 · 0 评论 -
schedule定时任务修改表达式无效
真是鬼了。 就那么个cron表达式,难道还能错了。对了无数遍,cron表达式没问题。 但就是无效。扩展下思路,有没有用到zookeeper,zookeeper是会缓存配置信息的。看了下,果然是缓存了。 清空后,重启项目有效了。...原创 2021-01-12 18:17:47 · 521 阅读 · 0 评论 -
springboot集成elastic job
pom.xml添加依赖<dependency> <groupId>com.cxytiandi</groupId> <artifactId>elastic-job-spring-boot-starter</artifactId> <version>1.0.0</version></dependency><dependency> <groupId>org.apache.curat原创 2021-01-12 15:48:21 · 819 阅读 · 0 评论 -
application.yml中的user_ip变量影响请求吗
场景restTemplate请求不通 。@Value("${user.url}")private String userUrl;// 这个访问不通restTemplate.getForObject(userUrl,String.class);目前配置linux中/etc/host配置:10.11.12.14 user_ip20.21.22.23 redishostapplication.yml配置:redis: database: 1 host: redishost # 这原创 2020-12-17 17:51:07 · 275 阅读 · 0 评论 -
报错:com.netflix.zuul.exception.ZuulException
场景报错:com.netflix.zuul.exception.ZuulException解决方案一般可能是服务没有启动,或者超时了。去所在的网关项目看日志,对症下药即可。原创 2020-12-09 11:45:03 · 2476 阅读 · 0 评论 -
@CookieValue获取cookie信息
这个注解用在方法参数列表中,可以接收cookie中参数。写法一(推荐):这种比较好,指定字段名称public void ddd(@CookieValue("user_token") String userToken){ }写法二:不指定字段名称,会从cookie中找和变量名称相同的参数public void ddd(@CookieValue String userToken){ }...原创 2020-11-13 17:44:55 · 770 阅读 · 0 评论 -
spring上下文中获取request
一句代码即可:ServletRequestAttributes servletRequestAttributes = (ServletRequestAttributes)RequestContextHolder.getRequestAttributes();原创 2020-11-13 17:06:24 · 1782 阅读 · 0 评论 -
springboot的jar包能够以service方式启动
文章目录场景过程pom.xml配置打包(maven),授权,启动:建立软连接,通过service命令来启动systemctl配置其他关于配置的官网文档场景打出的jar包用java -jar肯定是可以启动的。 这种方式原生简单,但是对运维不友好。于是要求改造,希望可以用service命令来启动。过程技术上完全可以实现的。pom.xml配置pom.xml 中有2个配置点:<finalName>custom-app</finalName><plugin>原创 2020-10-26 16:39:17 · 1476 阅读 · 0 评论 -
报错:Deprecated configuration property ‘management.context-path‘
场景application.yml编译报错,报错信息:Deprecated configuration property ‘management.context-path’报错配置:management: context-path: /admin解决方案这是因为SpringBoot 2.0+版本弃用context-path,改为如下配置即可:server: servlet: context-path: /admin...原创 2020-10-20 11:14:06 · 2474 阅读 · 0 评论 -
spring集成fastcsv处理csv文件、excel文件
pom.xml中引入依赖<dependency> <groupId>de.siegmar</groupId> <artifactId>fastcsv</artifactId> <version>1.0.3</version></dependency>代码String userHome = System.getProperty("user.home");logger.info("userHome:原创 2020-09-25 15:21:10 · 469 阅读 · 0 评论 -
controller中直接调用mapper好不好
不推荐。原因:不符合mvc的分层思想。dubbo时代,调用的是service,controller直接调用mapper,不能被其他系统使用。但是在微服务时代,面对的是controller,其实还好。优点就一个,方便。如果用完全的mvc模式,需要修改dao,service,serviceImpl,controller。而这只用修改controller,如果只是简单的增删改查,这种方式也可以。...原创 2020-09-04 17:39:44 · 5227 阅读 · 0 评论 -
springcloud gateway网关组件(比zuul要好一些)
Gateway其实就是一个微服务系统,接收所有的请求,根据URL进行路由,转发到相应的微服务系统进行处理;常用的网关技术nginx、zuul、gateway原创 2020-08-28 11:46:26 · 281 阅读 · 0 评论 -
springcloud组件之configserver配置中心
config是springcloud的组件之一,顾名思义,是配置中心的意思。一开始我不知道config是个项目,看到一堆微服务项目的配置文件都不在本项目下还感到很奇怪,想想也是可笑。bootstrap.yml配置文件配置文件如下:spring: application: name: config-server # 应用名 profiles: active: native cloud: config: server: native:原创 2020-08-28 11:07:57 · 3224 阅读 · 0 评论 -
restTemplate配置及发送json请求
接口只能接收json请求。 如果其他格式会报错。日志报错:Content type 'text/plain;charset=ISO-8859-1restTemplate代码很简单,但是要注意下文中的2个要点:String url="http://www.test.com/api/getUser";User user= new User();user.setName("zhangsan");String s = JSON.toJSONString(user);// 要点1: 这三句设置head原创 2020-08-20 17:05:52 · 11201 阅读 · 0 评论 -
@RequestBody参数注入,相同的代码为什么一个可以一个不行,一个是java,一个是class
发现class不能注入,java可以,好奇怪。发现class不能注入,java可以,好奇怪。发现class不能注入,java可以,好奇怪。原创 2020-08-14 18:26:47 · 270 阅读 · 0 评论 -
java.lang.IllegalStateException: No instances available for localhost
场景spring中使用restTemplate远程访问的时候报这个错:java.lang.IllegalStateException: No instances available for localhost解决方案不只一种解决方案,看哪种更适合自己。ip地址写为服务名这个报错一般会出现在使用了负载均衡,如:@Bean@LoadBalancedpublic RestTemplate restTemplate(){ return new RestTemplate();}当res原创 2020-08-12 17:54:19 · 7028 阅读 · 4 评论 -
xx-job的使用
xx-job是一个分布式任务调度平台。使用流程为:1、执行sql2、启动admin项目3、先有项目是执行器,集成进xx-job其他xx-job地址github地址:https://github.com/xuxueli/xxl-job中文文档地址:https://www.xuxueli.com/xxl-job/...原创 2020-07-24 07:02:47 · 9538 阅读 · 0 评论 -
spring dataSource连接池的配置
datasource原创 2020-07-13 18:16:31 · 8879 阅读 · 0 评论 -
springboot集成netty
pom.xml中添加依赖<dependency> <groupId>io.netty</groupId> <artifactId>netty-all</artifactId></dependency>application.ymlserver: port: 80logging: level: root: DEBUG# 数据库配置一定不要忘了,即使用内置的数据库也要配置的spring: jpa:原创 2020-07-06 07:34:23 · 508 阅读 · 0 评论 -
入参中的异常处理(全局异常处理)
这个有点特殊。 方法内的异常,手动打日志很容易。入参发生异常,接口肯定是返回信息的。 但是之后排查很有困难,因为根本没有记录日志。解决方案使用异常拦截器 @ExceptionHandler和@ControllerAdvice,这里不叙述使用方法。400异常模拟@RequestParam(required = true)设置入参必填@RequestParam(required = true) 设置入参username为必填,为空报错:@RequestMapping("/queryString")原创 2020-06-30 07:37:29 · 3227 阅读 · 0 评论 -
springboot集成listener
新建一个listener@Componentpublic class MyListener implements ServletRequestListener { @Override public void requestDestroyed(ServletRequestEvent sre) { System.out.println("MyListener destroy..."); } @Override public void request原创 2020-06-23 07:31:39 · 173 阅读 · 0 评论 -
过滤器的使用
过滤器代码代码如下:public class ApiFilter implements Filter { @Override public void init(FilterConfig filterConfig) throws ServletException { } @Override public void doFilter(ServletRequest request, ServletResponse response, FilterChain chai原创 2020-06-23 07:20:41 · 246 阅读 · 0 评论 -
It is illegal to call this method if the current request is not in asynchronous mode (i.e. isAsyncS
场景提示信息1:It is illegal to call this method if the current request is not in asynchronous mode (i.e.isAsyncStarted() returns false)提示信息2:Request processing failed; nested exception is com.alibaba.fastjson.JSONException: write javaBean error, fastjson ve原创 2020-06-20 07:13:05 · 1739 阅读 · 0 评论