Spring
文章平均质量分 62
Spring基础、Spring进阶、Spring源码分析
ZWZhangYu
这个作者很懒,什么都没留下…
展开
-
SpringBoot整合Redis实践消息发布订阅特性
发布订阅是消息的一种常用模式。例如,在企业分配任务之后,可以通过邮件、短信或者微信通知到相关的责任人,这就是一种典型的发布订阅模式。首先是 Redis 提供一个渠道,让消息能够发送到这个渠道上 ,而多个系统可以监听这个渠道,如短信、微信和邮件系统都可以监听这个渠道,当一条消息发送到渠道,渠道就会通知它的监听者,这样短信、微信和邮件系统就能够得到这个渠道给它们的消息了,这些监听者会根据自己的需要去处理这个消息,于是我们就可以得到各种各样的通知了。原创 2022-10-27 20:27:53 · 1097 阅读 · 1 评论 -
六:使用外置的Servlet容器
(一)嵌入式的Servlet容器(Jar)优点:简单,便携缺点:默认不支持JSP、优化定制比较复杂(使用定制器ServerProperties、自定义EmdeddedServletContainerCustomizer 或者 自己编写嵌入式Servlet容器的创建工厂EmbeddedServletContainerFactory)(二)外置Servlet容器好处:可以使用JSP(嵌入式的也...原创 2020-03-13 14:58:05 · 1259 阅读 · 0 评论 -
四、嵌入式Servlet容器自动配置原理
注意:本次自动配置原理基于SpringBoot 1.X版本,其中部分类在2.X版本有所变化,但是具体的流程和原理都是相似的,重要的是观察原理(一)Servlet容器启动过程org.springframework.boot.autoconfigure.web.EmbeddedServletContainerAutoConfiguration@Configuration @Conditiona...原创 2020-03-13 14:53:14 · 1210 阅读 · 0 评论 -
五、嵌入式Servlet容器启动原理
什么时候创建嵌入式Servlet容器工厂?什么时候获取嵌入式的Servlet容器并启动Tomcat?获取嵌入式的Servlet容器工厂1:SpringBoot应用启动run方法2:refreshContext(context);SpringBoot刷新IOC容器,初始化IOC容器此时需要进行一个判断:如果是web应用则创建AnnotationConfigEmbeddedWebApplic...原创 2020-03-13 14:54:00 · 1170 阅读 · 0 评论 -
一、配置嵌入式Servlet容器
SpringBoot默认使用Tomcat作为嵌入式的Servlet容器(一)配置文件修改Servlet属性如何定制和修改Servlet容器的相关配置org.springframework.boot.autoconfigure.web.ServerProperties相关的配置都可以通过上面这个类进行设置,比如开发中常使用的server.portpublic class ServerPro...原创 2020-03-13 14:41:47 · 1259 阅读 · 0 评论 -
三、切换其他嵌入式Servlet容器
(一)其他Servlet容器介绍和优势Jetty的架构比Tomcat的更为简单。Jetty可以同时处理大量连接而且可以长时间保持连接,适合于web聊天应用等等。Jetty的架构简单,因此作为服务器,Jetty可以按需加载组件,减少不需要的组件,减少了服务器内存开销,从而提高服务器性能。Jetty默认采用NIO。在处理I/O请求上更占优势,在处理静态资源时,性能较高。Tomcat适合处理少数非...原创 2020-03-13 14:49:58 · 1129 阅读 · 0 评论 -
二、注册Servlet三大组件
由于SpringBoot默认是以jar包的方式启动嵌入式的Servlet容器来启动SpringBoot的web应用,没有web.xml文件,也就不能够通过传统的xml配置来映射,如果需要注册自定义组件,可以通过如下方式(一)注册自定义Servlet组件1:创建继承HttpServlet类子类,重写doGet或者doPost,这里只是测试,如果是开发中需要put或者delete根据实际情况重写即...原创 2020-03-13 14:45:17 · 1144 阅读 · 0 评论 -
SpringBoot获取webapp目录下的文件路径
在SpringBoot项目中获取webapp目录下的文件资源,下面需要对于webapp下的XX.pdf文件进行处理,可以通过以下方式进行处理// webapp目录String classpath = this.getClass().getResource("/").getPath().replaceFirst("/", "");// 获取 webapp目录下uploadFiles/文件.xlsxString filePath = classpath+"META-INF/resources/WEB-原创 2021-04-17 17:24:34 · 5236 阅读 · 0 评论 -
@Import注解实践总结
文章目录引入其他的@Configuration直接初始化其他类的Bean加载ImportSelector实现类指定实现ImportBeanDefinitionRegistrar的类,用于个性化加载引入其他的@Configuration通过提供@Import注解可以将其他的JavaConfig配置引入到当前配置类中如上图所示,有俩个配置类,ConfigA和ConfigB,其中ConfigA通过@Import注解导入了@ConfigB,当使用了@Import时,会优先加载@Import中的配置,然后再去原创 2021-03-27 18:21:08 · 1845 阅读 · 0 评论 -
深入Spring数据库事务管理(二)
文章目录五、数据库的相关知识(一)ACID特性(二)丢失更新第一类丢失更新第二类丢失更新(三)隔离级别脏读读写提交不可重复读幻读六、选择隔离级别和传播行为(一)选择隔离级别(二)传播行为七、@Transactional失效问题深入分析八、事务典型错误用法分析(一)错误使用Service(二)过长时间占用事务(三)错误捕捉异常五、数据库的相关知识(一)ACID特性ACID就是:原子性(Atomicity )、一致性( Consistency )、隔离性( Isolation)和持久性(Durabilil原创 2020-05-16 19:59:04 · 1803 阅读 · 0 评论 -
深入Spring数据库事务管理(一)
(一)事务管理器介绍在Spring中数据库事务是通过PlatformTransactionManager进行管理的,如果只使用jdbcTemplate它自身是无法支持事务的,而能够支持事务的是TransactionTemplate,它是Spring所提供的事务管理器的模板,下面是TransactionTemplate部分源码: @Override public <T> T exe...原创 2020-05-16 19:47:40 · 2068 阅读 · 0 评论 -
IOC容器介绍和四种装配方式
文章目录什么是IOC?什么是Bean?IOC容器装配Bean的四种方式1:XML配置2:注解方式3:@Bean方式4:@Import@Import(BeanClass)@Import(ImportSelector)@Import(ImportBeanDefinitionRegistrar)什么是IOC?IOC也被称为依赖注入(Dependence Injection,DI),它是一种对象定义的...原创 2020-04-25 21:57:07 · 2336 阅读 · 0 评论