Spring/SpringBoot/SpringCloud
文章平均质量分 55
BtWangZhi
这个作者很懒,什么都没留下…
展开
-
SpringBoot-启动原理
贪心算法是一种在每一步中都采取在当下状态最好或最优的选择,从而希望导致结果是全局最好或最优的算法贪心算法与动态规划的不同在于它对每个子问题的解决方案都做出选择,不能回退,动态规划则会保存以前的运算结果,并根据以前的结果对当前进行选择,有回退功能。...原创 2022-10-25 17:46:29 · 201 阅读 · 0 评论 -
SpringBoot-事件
SpringBoot事件demo发布方@Servicepublic class UserServiceImpl implements UserService, ApplicationContextAware { private Logger logger= LoggerFactory.getLogger(UserServiceImpl.class); private ApplicationEventPublisher applicationEventPublisher;原创 2021-11-19 15:44:08 · 912 阅读 · 0 评论 -
SpringBoot-写Starter
For/Join框架,案例摘自《Java并发编程的艺术》public class CountTask extends RecursiveTask<Integer> { /** * */ private static final long serialVersionUID = 1L; private static final int ...原创 2020-06-30 09:42:01 · 352 阅读 · 0 评论 -
SpringBoot-日志收集与设置调用链requestid到日志中
log4j可以配置日志打印的格式、输出的位置,现在通过扩展,收集指定级别的日志,比如做日志监控什么的。log4j2.xml配置<configuration type="off" packages="com.test.config.LogAppender"> <Appenders> <Console name="ConsoleAppender...原创 2019-12-26 17:27:14 · 5704 阅读 · 0 评论 -
Spring--解析默认标签
测试:BeanFactory beanFactory=new XmlBeanFactory(new ClassPathResource("applicationContext.xml")); TextService textService=(TextService)beanFactory.getBean("textService"); textService...原创 2018-02-09 17:01:14 · 502 阅读 · 0 评论 -
Spring--方法注入
1 Spring利用了CGLIB库在运行时生成二进制代码功能,通过动态创建Lookup方法bean的子类而达到复写Lookup方法的目的。 例: 创建一个抽象类:public abstract class CommandManager { public void process() { Command command = createCommand(); ...原创 2017-10-06 16:36:08 · 281 阅读 · 0 评论 -
Spring--多数据源解决方案
整体流程如下; 分为XMl配置方案与SpringBoot集成两个方案1 与Spring集成采用XML配置,没有了Controller层,但是手动设置当前线程访问的数据库名, 项目整体目录结构: 自定义的数据源DynamicDataSource:public class DynamicDataSource extends AbstractRoutingDataSource原创 2018-01-20 14:39:39 · 537 阅读 · 0 评论 -
SpringMVC--请求数据映射
1 将路径中的数据映射到形参中/** * 测试@PathVariable * * @param id * @return */ @RequestMapping(value = "/pathVariable/{id}", method = RequestMethod.GET) @ResponseBody public Obje原创 2018-01-10 23:17:10 · 451 阅读 · 0 评论 -
SpringBoot--打包成WAR
1 平时开发一般采用Main方法本地启动,但是到生成环境,我希望在独立的tomcat容器中运行,因为我们需要对tomcat做额外的优化,这时我们需要将工程打包成war包发进行发布。 1.1 在pom.xml中配置工程的打包方式为war。 1.2 在pom.xml中添加依赖:<dependency> <groupId>org.springframework.boot</gr原创 2017-11-19 16:07:46 · 395 阅读 · 0 评论 -
SpringBoot--Profile
针对不同的环境,SpringBoot提供了全局Profile配置,在application.properties中指定当前使用的配置文件。如下例子: 开发环境: application-dev.properties:server.port=8080线上环境:server.port=80第一次在application.properties中指定开发环境:spring.profiles.acti原创 2017-11-20 21:08:40 · 418 阅读 · 0 评论 -
Web--Session共享问题
在Nginx做反向代理时,面对集群,如何保证Session的一致性。 第一种是以负载均衡服务器本身提供的session共享策略,每种服务期的配置是不一样的并且nginx本身是没有的。 第二种是利用web容器本身的session共享策略来配置共享。但是针对于tomcat这种方式存在很大的缺陷,主要因为是依靠广播方式来实现的session复制,会浪费很多带宽导致整个网络反映缓慢。官网也建议这种方式最原创 2017-11-26 20:54:22 · 656 阅读 · 0 评论 -
Quartz--与Spring集成
1 Spring集成Quartz主要是通过配置Job和Trigger来设置各个定时任务。 项目结构: 架包依赖:&amp;lt;dependency&amp;gt; &amp;lt;groupId&amp;gt;org.springframework&amp;lt;/groupId&amp;gt; &amp;lt;artifactId&a原创 2018-06-09 15:57:24 · 1386 阅读 · 0 评论 -
SpringBoot-行锁
在代码中看到同事写的SQL代码中有FOR UPDATE,百度了一下,说是MYSQL行锁,自己写个demo验证一下。参考博客:https://blog.csdn.net/u011957758/article/details/75212222场景:锁住用户的信息,在这期间不允许其他线程修改该用户信息,<select id="lockUserInfoById" parameterTy...原创 2018-11-15 16:49:43 · 4732 阅读 · 2 评论 -
SpringBoot-RestFul鉴权解决方案
在提供API接口给客户时,需要对客户的每一次请求进行鉴权,特整理如下:SIG=MD5(SID+TOKEN+TIME)AUTH=BASE64(SID:TIME)URL=VERSION/ACOUNTS/SID/FUNCTIOM/OPERATION?sig=SIGhttp包头中添加字段Authorization,值为AUTH后台鉴权流程:1 解码AUTH-》当前时间与Auth中的时间进行...原创 2020-02-15 15:03:03 · 2457 阅读 · 0 评论 -
SpringMVC--异步模型
SpringMVC异步模型接收请求同时,启动另外一个线程,将任务交给子线程完成,主线程继续处理其他请求,任务执行完成交给Response返回。实现demo:1 Callable@RequestMapping("/order") public Callable<String> order() { logger.info("主线程开始"); ...原创 2018-12-22 22:40:54 · 860 阅读 · 0 评论 -
Spring--默认标签的解析
1 在DefaultBeanDefinitionDocumentReader的方法parseBeanDefinitions中对于标签的解析分为默认标签的解析和自定义标签的解析。而默认标签与自定义标签的的区分是根据命名空间来进行判断的。具体代码如下BeanDefinitionParserDelegate类public static final String BEANS_NAMESPACE_UR原创 2019-01-19 17:39:34 · 367 阅读 · 4 评论 -
SpringSecurity--入门
Spring Security过滤器链原创 2019-01-19 17:39:58 · 261 阅读 · 1 评论 -
Spring--事务传播
传播行为是方法之间调用事务采取的 策略问题,比如执行多个insert操作,传统的是出现异常,全部回滚,但是现在不想全部回滚,正常的数据继续执行insert操作。public enum Propagation { /** *需要事务,它是默认传播行为,如果当前存在事务,就沿用当前事务 , *去否则新建一个事务运行子方法 */ REQUIRED(TransactionDefinitio...原创 2019-01-26 17:18:20 · 418 阅读 · 1 评论 -
SpringBoot-Sharding-JDBC分片
利用Sharding-JDBC实现分库分表,写了一个demo,做一下总结分库分表后的结构为定义分库分表的规则,通过user_id进行分库分表。分库的路由逻辑为user_id除以3后的模,分表的路由逻辑为user_id除以2后的模。/** * 获取user表的分片规则 * @return */ private TableRuleConfiguration...原创 2019-08-04 19:22:13 · 911 阅读 · 1 评论 -
SpringBoot--解决不依赖父POM的问题
参考:SpringBoot-1.5.8-RELEASE 25页。<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http:/原创 2017-11-20 14:07:12 · 6335 阅读 · 0 评论 -
SpringBoot--自动加载
1 单执行main方法后执行的事情如下: 在org.springframework.boot.autoconfigure.spring.factories中部分配置如下:org.springframework.boot.autoconfigure.data.redis.RedisAutoConfiguration,\从上可知,Redis是自动配置的。2 Redis配置修改 在RedisAut原创 2017-11-18 14:34:59 · 2093 阅读 · 0 评论 -
SpringBoot--MVC相关配置
1 静态资源 如果进入SpringMVC的规则为/时,Spring Boot的默认静态资源的路径为: spring.resources.static-locations= classpath:/META-INF/resources/, classpath:/resources/, classpath:/static/, classpath:/public/ 能正常访问: http:/原创 2017-11-18 21:39:55 · 1753 阅读 · 0 评论 -
Spring--依赖注入
1 基于注解 在具体的类上添加 @Repository、@Service、@Controller 和 @Component 将类标识为 Bean,Spring将会自动创建BeanDefination对象,并注册到Application中。在SpringMVC中的配置文件忠添加 ,启动Bean的自动扫描。 各个注解说明如下: @Component 是一个泛化的概念,仅仅表示一个组件 (Bean)原创 2017-07-03 14:17:45 · 305 阅读 · 0 评论 -
Spring与Ehcache整合
本文部分摘自http://www.cnblogs.com/jingmoxukong/p/5975994.html,感谢博主分享。 1 Ehcache是一个纯Java的进程内缓存框架,具有快速、精干等特点。它是Hibernate中的默认缓存框架。尝试写一个demo,并且在后面会与Spring进行整合。 1.1 Demo HelloWord。 src下ehcache.xml文件:<?xml ver转载 2017-06-08 11:00:35 · 367 阅读 · 0 评论 -
Spring--IOC
1 控制反转(Inversion of Control)简称IOC,org.springframework.beans及org.springframework.context包 是Spring IoC容器的基础,ApplicationContext 是BeanFactory的扩展,功能得到了进一步增强,比如更易 与Spring AOP集成、资源处理(国际化处理)、事件传递及各种不同应用层的conte原创 2017-05-26 03:54:15 · 383 阅读 · 0 评论 -
Spring Bean 循环依赖
在循环依赖是指在A中引用B,B中引用C,而C中引用A,容器创建对象时会出现死循环。相关解决方案如下: 1 选择其一使其延迟加载,然后从上下文中获取AService类型的bean即可。 现有AService 和BService,都在对方bean中注入,导致初始化时循环初始报错,解决方案就是选择其一使其延迟加载。用配置方式只要将其一设置lazy-init。 使用@Resouce或@Autowire转载 2017-06-01 23:36:40 · 886 阅读 · 0 评论 -
SpringMVC--拦截器
一 继承HandlerInterceptor 参考博客:http://jinnianshilongnian.iteye.com/blog/1670856package com.text.intercepter;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;i原创 2017-02-18 00:09:04 · 365 阅读 · 0 评论 -
SpringMVC--DispatcherServlet
1 DispatcherServlet是前端控制器设计模式的实现,提供spring Web MVC的集中访问点,而且负责职责的分派。在web.xml中的配置:<!-- Spring MVC servlet --> <servlet> <servlet-name>SpringMVC</servlet-name> <servlet-class>org.spring原创 2017-05-26 02:31:15 · 293 阅读 · 0 评论 -
SSM--Required MultipartFile parameter 'file' is not present
该问题困扰了我很久,在网上找了半天相同的问题的解决方案,基本上都是说参数前应该加@RequestParam,按该方案解决未果。突然看到这位仁兄转的博客:http://yanglei008.iteye.com/blog/246920最后结尾处要在Spring的配置文件中添加才解决。class="org.springframework.web.multipart.commons.Com原创 2016-12-11 23:02:14 · 10793 阅读 · 1 评论 -
SSM--It appears that the Web Project,”“,has not Web Root diectory setup,
Tomcat部署时,出现错误弹窗:It appears that the Web Project,”“,has not Web Root diectory setup, 解决办法: 项目-》Properties-》Web: 或者查看一下编译后的.class存放 位置是否有问题:、 项目-》Build Path-》Configure build Path: 附带启动时出现的一个架包错误:原创 2017-01-05 17:04:35 · 2092 阅读 · 0 评论 -
Spring--AOP
1 AOP面向切面编程,通过配置的方式解耦各个组件,从而达到面向对象编程核心思想:高内聚低耦合。 AOP为开发者提供一种进行横切关注点(比如日志关注点横切了支付关注点)分离并织入的机制,把横切关注点分离,然后通过某种技术织入到系统中,从而无耦合的完成了我们的功能。横切关注点可能包含很多,比如非业务的:日志、事务处理、缓存、性能统计、权限控制等等这些非业务的基础功能;还可能是业务的:如某个业务组件横原创 2017-06-02 03:13:12 · 384 阅读 · 0 评论 -
SpringMVC--注解与配置方式
1 注解 使用注解开发毫无疑问必先在web.xml中配置: 其中SringMVC配置文件的位置和url请求后缀要特别注意。<servlet> <servlet-name>springmvc</servlet-name> <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>原创 2017-05-22 23:25:09 · 492 阅读 · 0 评论 -
SpringBoot--整合Mybatis和Redis
SpringBoot并没有提供整合Mybatis的工具包 第一种:使用mybatis官方提供的Spring Boot整合包实现,下载地址:https://github.com/mybatis/spring-boot-starter 第二种:自己整合,与Spring整合Mybatis类似。转载 2017-11-19 01:07:24 · 1090 阅读 · 0 评论 -
SpringBoot--入门
1· 官方Demo POM中添加对SpringBoot的支持<!-- Spring boot的项目必须要将parent设置为spring boot的parent, 该parent包含了大量默认的配置,比如定义的Spring的版本号等大大简化了我们的开发。 --> <parent> <!-- 导入spring boot的web支持 --> <groupId>o原创 2017-11-17 23:23:06 · 282 阅读 · 0 评论 -
Spring--Java配置
1 项目结构: 依赖:<dependencies> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-webmvc</artifactId> <version>4.3.7.RELEASE</version>转载 2017-11-17 01:27:31 · 216 阅读 · 0 评论 -
Spring--声明式事务
1 声明式事物是对数据库进行一系列操作时要么全部操作完成,要么全部不操作。分自动提交事务,显式事务,隐式事务,批处理事务四种运行模式。 自动提交事务:Meiz每条单独的语句都是一个事务,是T-SQL默认的事务。 显式事务:每个事务以BEGIN TRANSACTION语句显式开始,以COMMIT或ROLLBACK语句显式结束。 隐式事务:在前一个事务完成是新事务隐式启动,但每一个事务仍以Comm原创 2017-06-03 18:52:21 · 840 阅读 · 0 评论 -
SSM--上传与下载文件
相信从事Web开发的都会碰到上传文件这类的基础问题,恰好在公司实习涉及到上传文件,通过查阅网上相关的资料,特整理如下, 1 Spring文件中添加如下配置,勿忘,否者怀疑人生,死都不知道怎么死的:<!-- 配置MultipartResolver 用于文件上传 使用spring的CommosMultipartResolver --> <bean id="multipartResolver原创 2017-02-14 23:22:44 · 3927 阅读 · 2 评论 -
SpringMVC--JSON数据
1 解析后台传递过来的数据为JOSN 一般而言,Spring MVC 的 CONTROLLER 可以通过两种方式返回 JSON 数据给前端JSP页面 1.1 Maven:<!-- JSON --> <dependency> <groupId>com.alibaba</groupId> ...原创 2017-05-26 03:10:39 · 523 阅读 · 0 评论 -
Spring--JdbcTemplate
1 JdbcTemplate将JDBC进行了更深层次的封装。主要提供如下的方法: execute方法:可以用于执行任何SQL语句,一般用于执行DDL语句; update方法及batchUpdate方法:update方法用于执行新增、修改、删除等语句;batchUpdate方法用于执行批处理相关语句; query方法及queryForXXX方法:用于执行查询相关语句; call方法:用于执行存原创 2017-07-04 12:13:57 · 335 阅读 · 0 评论 -
SSM--环境搭建
用SpringMVC+Spring+Mybati这三个框架用了这么长的时间了,虽然说会用,但是有种知其然不知其所以然的感觉,工作之余特地自己搭建了一个,对里面的各种配置了解得深入了一点,现总结如下,会穿插一点lz个人对其中的理解,有误之处还望轻碰后指出,如果对后来人有所帮助,lz会非常开心,因为lz开始学的时候就是参考了非常多前辈写博客才有今天的。 1楼主用的是Myeclipse,创建一个java原创 2017-02-18 02:12:25 · 612 阅读 · 0 评论