spring
文章平均质量分 64
糖醋排骨不拿拿
这个作者很懒,什么都没留下…
展开
-
【spring源码探索】一分钟搞懂RefreshScope的作用及实现原理
下述文章完全为个人阅读源码的随笔记录,如有错误,欢迎大家指出。过程很坎坷,而且大家应该都不想看了吧,简而言之就是些测试DEMO,然后各种DEBUG原创 2022-06-23 16:57:05 · 1092 阅读 · 0 评论 -
【spring源码探索】申明式事务是如何保证多个DAO用的同一个connection
突然好奇Spring的申明式事务是怎么实现的,肯定是后置处理增强的就不用说了。从我多年写代码的经验来说,肯定是生成一个代理对象,在调用service方法之前就会创建事务,然后整个service方法执行完后再提交或者异常回滚。但是这就有一个问题,一个service调用多个dao,以DAO层框架mybatis为例,调用的时候咱们并没有给他传任何connection,既然要保证事务,那么每个DAO里面传的connection肯定是同一个,那么框架底层是如何实现的呢?为了探究一下实现原理,咱们先写一个简单的DEMO原创 2022-06-15 16:41:34 · 1032 阅读 · 0 评论 -
Spring源码探索——有接口,有无参构造器的bean对象,Spring是用的JAVA反射来创建对象的,这句话一定正确吗?
机缘今天在探索Spring源码的时候,无意中看到这样的情况。居然是CGLIB的代理对象,可我这个类明明有接口,有无参构造啊,HelloWorldServiceImpl 的源码如下。@Service("helloWorldService")public class HelloWorldServiceImpl implements HelloWorldService{ @Value("${name:World}") private String name; public H原创 2022-05-31 10:33:07 · 194 阅读 · 0 评论 -
Spring后置处理器BeanPostProcessor的源码探究
前言最近仔细研究了一下spring的后置处理器,感觉挺有意思的,顺便记录一下研究过程吧。BeanPostProcessor类图老话说得好,看源码主要就是看接口,毕竟面向接口编程嘛,源码的接口实现一大堆,看接口就清晰明了很多了。从类图里面可以看出来,Spring底层提供的Bean的后置处理器的顶层几个接口,也就上图这些了。那咱们就挨个给他实现一下,看他的工作机制是什么。研究过程咱们给他们所有提供的接口建一个实现类,然后分别给构造方法和实现的方法打上断点,如下图。只得一提的是,实现SmartI原创 2022-05-24 11:37:17 · 215 阅读 · 0 评论 -
mockmvc 用法
@WebAppConfigurationpublic class ControllerTest{ // 自己写的controller @Autowired private DemoController sendMsgController; private MockMvc mockMvc; @Before public void setup() { mockMvc = MockMvcBuilders.standaloneSetup(sendM原创 2021-05-27 17:01:06 · 540 阅读 · 0 评论 -
Springboot配置多个视图解析器,项目同时有jsp和html
废话有点多。。大家谅解下啊,如果着急的话可以直接下拉到底部,上面是我的解决历程。。这个问题一般是遇不到的,只怪我们项目是在奇葩。事情是这样的,我们先开发的项目要集成进去一个老项目,新项目用的是html,但是老项目用的是Jsp,而且老项目功能完善,只是前端有点问题。问题有了,那总得解决是吧。现在有很多种办法:1、把Jsp改成Html;2、用request.getDispacter()去跳转;...原创 2019-03-28 14:12:15 · 13056 阅读 · 12 评论 -
SpringMvc实现逻辑
首先DispatcherServlet会接受到request请求信息,去头去尾①得到映射地址,然后通过HandlerMapping查找到具体处理的Controller以及对于的方法。方法结束后会返回一个ModelAndView,里面包含的是返回的数据以及返回的视图。这个就会交给RiewResolver来处理。处理结束后就会跳转到相应的视图。...原创 2018-12-14 15:50:41 · 501 阅读 · 0 评论 -
spring两种Ioc容器的对比(BeanFactory和ApplicationContext的比较)
Spring提供两种Ioc容器,分别是BeanFactory和ApplicationContext BeanFactory:基础类型的Ioc容器,采用懒加载(lazy-load),对象只有在用的时候才初始化和依赖注入。所以启动容器比较快。ApplicationContext:较高级类型的IOC容器,基于BeanFactory,在启动容器的时候就会初始化并注入依赖。并且还提供其他高级特性...原创 2018-11-28 10:33:27 · 2036 阅读 · 0 评论 -
Spring Boot-错误处理及自定义全局异常处理机制
正常的Web应用开发时,需要考虑到应用运行发生异常时或出现错误时如何来被处理,例如捕获必要的异常信息,记录日志方便日后排错,友好的用户响应输出等等。当然应用发生错误,有可能是应用自身的问题,也有可能是客户端操作的问题。Spring Boot默认提供了一种错误处理机制。默认错误处理机制默认情况下,Spring Boot为两种情况提供了不同的响应方式。一种是浏览器客户端访问应用发生错误时,一般情况下浏...转载 2018-07-04 14:11:20 · 3465 阅读 · 0 评论 -
spring boot热部署,html修改无需重启项目
一、spring-boot-devtools 在pom中直接引入依赖<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-devtools</artifactId> <opti...转载 2018-03-24 15:24:59 · 9386 阅读 · 0 评论 -
springboot添加定时器
@ComponentScan //定时器扫描@EnableScheduling //定时器public class FkApplication { public static void main(String[] args) { SpringApplication.run(FkApplication.class, args); }} @Scheduled(cron =...原创 2018-02-08 09:40:03 · 538 阅读 · 0 评论