
spring
文章平均质量分 76
wangjun5159
2011年-至今一直从事java web开发,全栈开发,包括但不限于java技术栈、vue技术栈、微信小程序,uniapp,抓包wireshark/fiddler、nginx/keepalived,了解原生安卓,知道electron,关注flutter,欢迎技术咨询
展开
-
springmvc/springboot 序列化枚举类/枚举转json、转json忽略字段、fastjon/jackson指定字段名称/自定义字段名称
springmvc中比如一个枚举类public enum MyEnum{ INSTANCE1("code1",“name1”), INSTANCE2("code1",“name1”), ; private String code; private String name;}springmvc默认使用jackson,序列化的结果是[{0:"INSTANCE1"},{1:"INSTANCE2"}]期望序列化后结果[{"code":"code1","name":"原创 2021-12-18 14:51:05 · 5202 阅读 · 0 评论 -
SpringMVC 异常处理机制,
##############################################spring异常处理机制,1 实现HandlerExceptionResolver,接口方法返回ModelAndView,一般适合系统中有页面的情况,当然也可以用于前后端分离情况,无非就是view是空,DefaultHandlerExceptionResolver就是默认实现。2 写一个类,添加注解@ControllerAdvice,在类的方法上添加注解@ExceptionHandler,并指明要处理的Exce原创 2021-09-24 21:45:02 · 736 阅读 · 1 评论 -
spring @Configuration @Bean用法
概要@Configuration里边定义@Bean,@Configuration相当于一个xml配置文件,@Bean就是xml中的<bean/>定义bean依赖可以调用方法,比如这里的beanTwo()。你可能会好奇,如果beanTwo()被调用两次会不会创建两个beanTwo实例,因为spring bean的默认scope是单例;答案是不会创建多个实例的,@Configuration类实现原理是cglib继承了配置类,然后重写方法,从而实现拦截,这也是为什么配置类不能被final修饰。原创 2021-09-18 18:30:41 · 1039 阅读 · 0 评论 -
dubbo 消费者重复订阅 @Reference注入不进Controller
dubbo消费者应用A启动,通过dubbo-admin查看后,有两个一模一样的消费者订阅。基本配置如下 spring根application-context.xml中配置spring mvc的servlet-applicationcontext.xml配置因为dubbo service是单例的,所以,为了验证这个bean是否被创建了两次,我新建了构造方法,然后打印log,发现,dubbo原创 2017-02-28 21:52:53 · 3837 阅读 · 1 评论 -
spring 声明周期钩子方法 扩展点
#####################spring bean生命周期钩子方法执行顺序The @PostConstruct and @PreDestroy annotations. You can combine these mechanisms to control a given bean.The InitializingBean and DisposableBean callback interfacesCustom init() and destroy() methods可以这样理解,肯原创 2021-08-14 07:49:10 · 781 阅读 · 1 评论 -
spring 发送http请求 RestTemplate、WebClient
###########################HttpMessageConverterSpring-web模块包含HttpMessageConverter约定,约定指的是通过InputStream和OutputStream,HttpMessageConverter如何读取http请求body和写入http响应。spring web框架提供了主要MIME type的HttpMessageConverter实现,在客户端RestTemplate来注册这些实现,在服务器端RequestMethodH原创 2021-06-06 10:41:01 · 10107 阅读 · 0 评论 -
事务隔离属性、spring传播属性、 @Transactional注解
##############事务隔离属性+传播属性################mysql默认的隔离级别是read_commitedread_uncommitread_commitedrepeatable_readSERIALIZABLE脏读:事务1修改了行1,但是还没commit,事务2读取了未commit的行1,事务1回滚了行1;不可重复读:事务1读了行1,事务2修改了行1并commit,事务1再次读了行1,发现行1变了。幻读:事务1读了满足where条件的所有行,事务2插入了满足wh原创 2021-03-30 21:41:54 · 295 阅读 · 0 评论 -
spring context:component-scan与context:annotation-config的区别
前言&amp;amp;lt; context:annotation-config/&amp;amp;gt;用来注册几个常用的BeanPostProcessor,常见的BeanPostProcessor有ConfigurationClassPostProcessor 、AutowiredAnnotationBeanPostProcessor、CommonAnnotationBeanPostProcessor,他们主要用...原创 2018-09-05 22:03:00 · 1161 阅读 · 0 评论 -
spring源码(一) springmvc启动过程,springmvc初始化过程
spring mvc配置我们知道要想使用springmvc,一般需要配置如下web.xml中配置ContextLoaderListener来加载spring根配置文件。&amp;amp;amp;amp;lt;web-app&amp;amp;amp;amp;gt; &amp;amp;amp;amp;lt;context-param&amp;amp;amp;amp;gt; &amp;amp;amp;amp原创 2018-09-06 21:52:38 · 966 阅读 · 0 评论 -
spring集成shiro原理
在web工程web.xml中,需要配置shiroFilter,如下 <filter> <filter-name>shiroFilter</filter-name> <filter-class>org.springframework.web.filter.DelegatingFilterProxy</filter...原创 2019-05-14 12:50:19 · 1365 阅读 · 0 评论 -
spring mvc 静态资源处理
web.xml中的DispatcherServletspring mvc允许DispatcherServlet 映射为/,如此一来就覆盖了servlet容器默认servlet的映射。但是,我们仍然可以让servlet容器的默认servlet来处理静态资源。web.xml中配置<servlet> <servlet-name>springServlet&l...原创 2019-08-06 19:31:23 · 272 阅读 · 0 评论 -
spring 国际化的原理
spring国际化原创 2019-08-06 19:31:53 · 1617 阅读 · 0 评论 -
spring HandlerMapping、HandlerExecutionChain 、HandlerAdapter的作用
HandlerMappingHandlerMapping是request与handler object之间的映射,handler object总会包装成HandlerExecutionChain ,HandlerExecutionChain 里含有handler object、interceptor等。HandlerMapping可以实现Ordered接口,来排序。/** * Return...原创 2019-08-13 20:51:46 · 2885 阅读 · 0 评论 -
spring uri template、ModelAndView、@ModelAttribute
spring uri templateuri template,相当于pathvariable(路径变量),主要用来匹配uri中的变量,它区别于常见的后缀传参,看起来更简洁,rest推荐使用这种方式。匹配优先级更少的变量和通配符的,优先匹配更长长度的,优先匹配如果第一条+第二条都一样,通配符少的,优先匹配可以使用占位符uri template中的变量可以使用占位符p...原创 2018-02-09 09:34:20 · 647 阅读 · 0 评论 -
spring测试起步
开始一个测试类上只要添加这3个注解,就可以开始测试了。 @RunWith(SpringJUnit4ClassRunner.class) @ContextConfiguration(“classpath:spring-context.xml”) @WebAppConfiguration注解的作用@ContextConfiguration用来加载根applicationconte...原创 2018-02-09 09:22:48 · 325 阅读 · 0 评论 -
spring @Autowired 解释
@Autowired,自动装配,按照类型装配,在有多个实现类的情况下,可以通过@Qualifier来缩小范围,@Qualifier指的是实现类的类名字。@Qualifier("a1Service") @Autowired private AService aService;这个例子就会去寻找实现了AService,并且bean name是a1Service的类原创 2016-01-06 13:19:29 · 763 阅读 · 0 评论 -
aop:config在shiro权限注解中发挥的作用
问题spring-shiro.xml中通常会加aop配置,以使shiro认证注解(@RequiresPermissions、@RequiresRoles、@RequiresUser、@RequiresGuest)work。<aop:config /> <!--权限注解的advisor --> <bean class="org.apache.shiro.spring.security.原创 2016-07-12 15:43:09 · 11612 阅读 · 1 评论 -
org.springframework.transaction.UnexpectedRollbackException: Transaction rolled back because it has
完整的异常信息: org.springframework.transaction.UnexpectedRollbackException: Transaction rolled back because it has been marked as rollback-only字面意思: 出现了不可预知的回滚异常,因为事务已经被标志位只能回滚,所以事务回滚了。原创 2015-09-28 17:50:41 · 9079 阅读 · 0 评论 -
spring proxy-target-class
结论proxy-target-class=”true”,使用CGLIB代理 proxy-target-class=”false”,使用JDK代理,默认是JDK代理使用场景spring的代理模式有两种,JDK和CGLIB jdk对应目标类有接口的情况; cglib对应目标类没有接口,是普通类的情况;配置applicationContext.xml <context:component-s原创 2016-07-03 22:34:50 · 1014 阅读 · 0 评论 -
spring beanFactory和FactorBean
BeanFactory:以Factory结尾,所以它是个工厂,用来管理Bean,在spring中通常会有XmlBeanFactory、DefaultListableBeanFactory,XmlBeanFactory用来读取xml管理beanBeanFactory都会有getBean(String beanName)方法,来获取beanpublic interface BeanFactor原创 2016-01-06 13:29:41 · 1355 阅读 · 0 评论 -
spring 动态数据源不起作用
背景工程中有两个service,serviceA对应数据源A,serviceB对应数据源B在serviceA.methodA()中调用serviceB.mehtodB()方法,虽然切换数据源aop正确执行了, 但是serviceB.methodB()方法执行时,仍然使用的serviceA的数据源。动态数据源主要方法类import org.springframework.jdbc.datasourc原创 2016-07-21 10:49:15 · 6919 阅读 · 0 评论 -
spring 扫描包 不起作用
问题spring中配置了包路径,但不扫描包,上网搜索后发现,eclipse导出包时勾选add directory entry就ok了。我的疑问是add directory entry作用是什么?spring扫包是什么原理,怎么会跟add directory entry有关系?add directory entry作用我们先来看一下add directory entry的作用。工程目录 eclips原创 2016-08-16 10:43:06 · 3384 阅读 · 1 评论 -
java springboot/springmvc 下载excel文件
前言spring mvc下载文件原理,其实跟普通的下载文件没有什么区别,区别是spring mvc的请求映射跟struts等不同。文件下载的原理就是,将文件以流的方式写出到response中,因为输出流只能写出一次,所以,文件下载的后台方法,都是无返回值;http响应报文内容类型是文件,所以,即使页面是默认表单提交方式,页面也不会刷新;同理,超链接、js提交表单页面都不会刷新;代码效果图jsp页面.....................原创 2016-08-31 19:51:06 · 3135 阅读 · 1 评论 -
spring4 使用logback不打印日志
背景工程中使用的spring4.2.6,在web.xml配置了logback的listener加载logback配置文件,使用logback打印日志,但是启动后spring core模块使用jcl(jarakta commons logging)打印,后边的使用logback打印。分析通过maven dependency发现,工程引入了jcl(jarakta commons logging)、log原创 2016-10-01 21:01:11 · 15523 阅读 · 1 评论 -
spring集成shiro aop 执行两次
系统整合了shiro框架后,发现方法本体执行一次,aop执行两次!经过研究,是因为系统中有两个代理创建器,生成两个代理类导致的。原创 2016-07-04 22:14:49 · 13945 阅读 · 3 评论 -
spring 事务超时时间不起作用
问题在一个事务方法中,发送http请求,由于http请求没有设置sockettimeout导致,请求阻塞,虽然事务方法设置了超时时间1秒,但是一直不超时,程序假死。//伪代码public void save(){ //插入数据库一条记录 insert into user(name,age) values('hello',20); //发送http请求,通知appA ht原创 2017-09-30 11:22:44 · 7564 阅读 · 0 评论 -
http请求中没有set-cookie,却产生了jsessionid;tomcat产生两个sessionid,一个是自定义的sessionid(customSessionId),一个是默认的jsess
背景项目使用了spring session,并用redis存储,以实现分布式环境下session同步;查看dev tools—>network时发现,有两个sessionid,一个是spring session中指定的customSessionId,一个是tomcat默认的jsessionid,原创 2017-12-19 20:01:16 · 19743 阅读 · 0 评论 -
spring mvc 支持options方法
在web.xml中,添加 dispatchOptionsRequest true 添加后 springdispatcher org.springframework.web.servlet.DispatcherServlet contextConfigLocation classpath:springMvc-viewresolver.xml原创 2016-01-20 13:54:22 · 8520 阅读 · 0 评论