
spring
ypp91zr
善于分享,提升自我!
展开
-
工具类使用@Autowired 注入静态Bean
@Componentpublic class AutowireStaticSmartInitializingSingleton implements SmartInitializingSingleton { @Autowired private AutowireCapableBeanFactory beanFactory; /** * 当所有的单例 Bena 初始化完成后,对 static 静态成员进行赋值 */ @Override pub.原创 2020-07-28 17:52:10 · 1060 阅读 · 0 评论 -
通过Spring获取所有类上贴了注解的实例以及Class.getAnnotation()获取注解为null的解决办法
先贴代码:Map<String, Object> wechatSendTemplateServiceBeanMap = springBeanTool.getBeanByAnnotation(WechatSendTemplate.class); for (Map.Entry<String, Object> beanMap ...原创 2019-12-27 14:20:32 · 5787 阅读 · 0 评论 -
类以及方法使用@Transactional注解事务后获取类实例
今天在做项目时,由于类型很多,就改成了类似策略模式的,不使用if else,方便后期扩展把所有的实现类继承同一接口,再一个不相干的类进行构造所有实现类@Servicepublic class SendTemplateService { Map<String, WechatSendTemplateService> wechatSendTemplateServiceM...原创 2019-12-19 17:46:18 · 841 阅读 · 0 评论 -
servlet注入spring service
平时一般用spring都是使用controller,但有时候会使用到servlet。场景:最近在接入中国银联代收产品支付,不得不说银联的技术人员牛X,为了大家方便统一接入,使用的是servlet废话不多说,代码:package com.pinyu.system.web.servlet.unionpay;import java.io.IOException;import java...原创 2018-11-14 14:42:43 · 1840 阅读 · 0 评论 -
XA resource 'XXXXdatasource': end for XID '' raised -7: the XA resource has become unavailable
今天把分布式事务弄好以后,后面一直报连接错误先来说这个错误:XA resource 'XXXXdatasource': end for XID '' raised -7: the XA resource has become unavailable这个算是mysql对于Atomikos的一个小bug 官方的解释: A possible workaround might be to ...原创 2018-11-12 16:51:22 · 6181 阅读 · 1 评论 -
No qualifying bean of type 'javax.sql.DataSource' available: more than one 'primary' bean found amon
多数据源报错:No qualifying bean of type 'javax.sql.DataSource' available: more than one 'primary' bean found among candidates: [test2DataSource, test1DataSource]由于之前引入mybatis的时候引入了pom<dependency>...原创 2018-11-20 13:46:36 · 25211 阅读 · 4 评论 -
spring boot WebMvcConfigurerAdapter WebMvcConfigurationSupport问题
使用了拦截器继承WebMvcConfigurerAdapter正常,静态资源会加载在2.0以后WebMvcConfigurerAdapter被废弃了,使用WebMvcConfigurationSupport静态资源会无效。很多配置不会自动化网上的方式是@Override protected void addResourceHandlers(ResourceHandlerReg...原创 2018-11-29 17:42:29 · 293 阅读 · 1 评论 -
spring boot 替换默认的jackjson返回fastjson
第一种方式继承WebMvcConfigurerAdapter或者继承WebMvcConfigurationSupport。复写configureMessageConverters方法代码:@Override public void configureMessageConverters(List<HttpMessageConverter<?>> conver...原创 2018-11-30 11:22:14 · 1446 阅读 · 0 评论 -
java.lang.NoClassDefFoundError: Could not initialize class org.apache.jasper.el.ELContextImpl
启动tomcat报错:java.lang.NoClassDefFoundError: Could not initialize class org.apache.jasper.el.ELContextImpljava.lang.NoClassDefFoundError: Could not initialize class org.apache.jsp.index_jsp等错误...原创 2018-12-12 17:36:07 · 25204 阅读 · 12 评论 -
java 静态代码块和spring @value等注解注入顺序
今天在引用yml配置文件的时候,因为用到了继承的静态代码块。类与类有继承关系的静态代码块是先执行父类静态代码块再执行子类静态代码块,这个问题不用说。今天探索的是与spring相关的执行顺序我在项目启动的时候需要去加载部分配置文件,这些配置文件的信息在子类的静态代码块需要使用的。跑项目的时候子类引用父类的属性一直报空指针。父类代码:package com.pinyu.system....原创 2018-12-11 14:30:08 · 8806 阅读 · 0 评论 -
error at ::0 formal unbound in pointcut 以及切面返回JSON数据
使用Spring AOP 报错在使用切面的时候,启动报错:error at ::0 formal unbound in pointcut原因在于@Before(value = "pointCut()") @ResponseBody public void doBefore(JoinPoint joinPoint,Exception e) { handleLog(joinPo...原创 2019-05-01 22:54:59 · 13134 阅读 · 0 评论 -
@autowired 无法注入问题整理
今天突然有个朋友在写代码的时候问我,@autowired没注入,截图给我看。我看了看基本也没什么问题,结果截图业务逻辑的时候,居然是new的,肯定空指针列举一般无法注入的情况(只针对spring,dubbo配置等不算在内): 1、spring boot项目启动类入口尽量放在顶级包下,spring会自动扫描子包以及子孙包的bean,基本不会存在无法注入的情况。普通spring项目配置...原创 2019-05-01 23:58:35 · 9442 阅读 · 2 评论 -
Spring Boot设置跨域
跨域是很多应用都会遇到的问题。Spring Boot2.0之前继承WebMvcConfigurerAdapte即可实现@Configurationpublic class CorsConfig extends WebMvcConfigurerAdapter { @Override public void addCorsMappings(CorsRegistry re...原创 2019-05-03 13:10:14 · 902 阅读 · 0 评论 -
spring 在@ResponseBody返回json数据前进行全局处理
第一种:@ControllerAdvice controller增强处理实现ResponseBodyAdvice<Object>,重写方法beforeBodyWritepackage com.pinyu.miniprogram.global.exception;import org.apache.logging.log4j.LogManager;import org...原创 2019-05-03 14:01:57 · 1779 阅读 · 0 评论 -
Spring静态注入Bean
Spring依赖注入是基于对象的,static是基于类级别的。所以静态注入在使用的时候会抛出java.lang.NullPointerException空指针运行时异常使用@PostConstruct方式:1.对工具类使用@Component 注解2.@Autowired 注解注入bean3.@PostConstruct 使用该注解定义init()方法,在方法中给当前对象赋值...原创 2019-05-05 14:53:53 · 2781 阅读 · 0 评论 -
手写Spring事务
<!-- 配置事物 --> <bean id="dataSourceTransactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager"> <property name="dataSource" ref="...原创 2019-05-21 00:15:09 · 537 阅读 · 0 评论 -
spring boot+mybatis+druid 多数据源多库分布式事务
废话不多说,首先贴配置文件,需要引入pomxml <dependency> <groupId>com.alibaba</groupId> <artifactId>druid-spring-boot-starter</artifactId> <version>1.1.10</versi...原创 2018-11-12 11:23:19 · 1742 阅读 · 0 评论 -
spring boot+mybatis+druid 多数据源配置
application.yml(application.properties)配置:spring: datasource: druid: type: com.alibaba.druid.pool.xa.DruidXADataSource driver-class-name: com.mysql.jdbc.Driver ...原创 2018-11-12 11:12:08 · 583 阅读 · 0 评论 -
Spring3 MVC请求参数获取的几种方法
一、 通过@PathVariabl获取路径中的参数 @RequestMapping(value="user/{id}/{name}",method=RequestMethod.GET) public String printMessage1(@PathVariable String id,@PathVariable String name, ModelMap m原创 2017-06-13 16:48:56 · 226 阅读 · 0 评论 -
Spring MVC+hibernate 使用@ResponseBody返回json报500 (Internal Server Error)
后台不报错。在返回给前台页面的时候报错。大概意思是返回json的时候里面有一个一类类型,但是没有序列化。然后将返回的对象里面的类型改成了普通的就行了具体如何解决这个错误还望指点。网上找的据说是需要配置com.fasterxml.jackson.databind.ObjectMapper里面的SerializationFeature.FAIL_ON_EMPTY_BEANS 为fa原创 2017-08-18 14:24:22 · 2891 阅读 · 0 评论 -
Illegal attempt to associate a collection with two open sessions.
今天碰到一个奇怪的问题,以前从未遇到过,可能遇到过但是忘了。我一个方法里面有其他方法,而子方法里面开启了调用了2个service,也就是开启了2个session,就出现了这个错:Illegal attempt to associate a collection with two open sessions.但是用了Spring的事物即使有2个session也不会出现这个错啊,百思不得其解,原创 2017-09-20 15:59:17 · 1329 阅读 · 0 评论 -
微服务架构的基础框架选择:Spring Cloud还是Dubbo?
最近一段时间不论互联网还是传统行业,凡是涉及信息技术范畴的圈子几乎都在讨论 微服务架构 。近期也看到各大技术社区开始组织一些沙龙和论坛来分享Spring Cloud的相关实施经验,这对于最近正在整理Spring Cloud相关套件内容与实例应用的我而言,还是有不少激励的。目前,Spring Cloud在国内的知名度并不高,在前阵子的求职过程中,与一些互联网公司的架构师、技术VP或者CTO在交流时,有转载 2017-10-09 10:46:41 · 349 阅读 · 0 评论 -
Spring 注解@Value
一 配置方式@value需要参数,这里参数可以是两种形式:[html] view plain copy@Value("#{configProperties['t1.msgname']}")或者@Value("${t1.msgname}"); 这两形式,在配置上有什么区别:1、@Value("#{confi原创 2017-11-14 11:02:55 · 822 阅读 · 0 评论 -
get请求传递中文后台乱码
今天拿到别人代码后,看功能时查询始终不对。看到用get请求传递了中文,但是后台接受是乱码做个小记: 解决办法: 后台:String parameter = request.getParameter("keyword"); if(StringUtils.isNotBlank(parameter)){ String keyword=java.n原创 2017-12-18 18:05:30 · 992 阅读 · 0 评论 -
Interceptor 拦截器请求302
今天在测试其他人写的权限的时候,发送了一个请求,但是请求里面的路径变了,错了开始访问/pinyu/houseResource/ 然后进入Interceptor里面request里面的请求变了,看下图开始百思不得其解为什么地址莫名其妙就变了,然而其他的路径正常。于是我把按钮菜单等权限注释掉。然后变成了404,没有找到页面。突然想起了我没有写controller,更没有这个请求的cont...原创 2018-09-28 16:13:50 · 3099 阅读 · 0 评论 -
spring boot 集成quartz 定时任务调度
添加依赖:<dependency> <groupId>org.quartz-scheduler</groupId> <artifactId>quartz</artifactId> <version>2.2.1</version> <exclusions>原创 2018-10-18 10:57:37 · 301 阅读 · 0 评论 -
spring 全局异常处理及自定义异常场景
废话不多说,先贴代码:package com.pinyu.system.exception;import java.util.HashMap;import java.util.Map;import org.apache.logging.log4j.LogManager;import org.apache.logging.log4j.Logger;import org.sprin...原创 2018-10-15 16:35:40 · 649 阅读 · 0 评论 -
spring boot 获取applicationContext servletContext
今天在做一个quartz定时任务的时候,要获取servletContext。想的是获取到request也可以,但这个定时任务不会发起请求,是定时从数据库查数据,所以request不符合场景。然后就想到了servletContext。但是在过程中用了很多种方式都获取不到。因为是在普通类,没有controller这种request。网上的其他方式配置:1.servletContext serv...原创 2018-10-17 14:12:50 · 12152 阅读 · 4 评论 -
spring boot mybatis 扫描多个mapper文件夹里面的mapper.xml
上图,文件夹目录结构最开始没有finance这个文件夹,想把财务和其他业务模块分开,所以新建文件夹了死活解析不到xml文件。后面发现路径没有改。最开始是:classpath:mapper/*Mapper.xml改成以下图蓝色的路径就可以了,扫描mapper文件夹下所有mapper.xml文件...原创 2018-10-29 15:57:00 · 12976 阅读 · 7 评论 -
log4j2 记录信息到数据库
定义了一个切面 Spring Aop的添加了注解的设置userId等自定义注解:package com.pinyu.system.global.ann;import java.lang.annotation.Documented;import java.lang.annotation.ElementType;import java.lang.annotation.Retentio...原创 2018-11-01 17:22:55 · 1040 阅读 · 0 评论 -
spring boot log4j2 自定义级别日志并存储,超详细
由于需要一些业务日志,本来是用的注解,然后用spring aop获取注解的形式来记录,但是由于最开始的时候没有统一controller 方法的参数,参数数据,细致到id不太好记录。于是想到了log4j的形式存储数据库,但log4j的形式记录会记录所有级别的日志,即使指定日志级别,其他框架里面的同级别日志也会记录,很混乱。于是想到了自定义级别来记录存储,这样就解决了其他框架同级别的日志不会同时存储,...原创 2018-11-02 11:47:57 · 7769 阅读 · 2 评论 -
Spring boot 使用servlet
废话就不说了,看代码:启动类@ComponentScan(basePackages = "com.pinyu.system")@EnableTransactionManagement(proxyTargetClass = true)//@SpringBootApplication(exclude={ // DataSourceAutoConfiguration.class, /...原创 2018-11-13 17:05:23 · 215 阅读 · 0 评论 -
Spring MVC之@RequestBody, @ResponseBody 详解
引言:接上一篇文章讲述处理@RequestMapping的方法参数绑定之后,详细介绍下@RequestBody、@ResponseBody的具体用法和使用时机;简介:@RequestBody作用: i) 该注解用于读取Request请求的body部分数据,使用系统默认配置的HttpMessageConverter进行解析,然后把相应的转载 2017-04-19 09:57:57 · 268 阅读 · 0 评论