Spring Boot

血的教训!蚂蚁金服、天猫、百度,多家面试被虐,奉劝各位年轻人耗子尾汁!

家住魔仙堡 提交于 2020-12-05 15:13:31
没有不坑的公司,所谓好公司就是不那么坑的公司 。 背景 十月份前后一个月的时间,有幸获得天猫、蚂蚁金服、百度和NAVER China的面试机会,对于普通院校毕业的我,能够收到大厂面试机会已经很兴奋了,然后就幻想着收到offer的场景,或许是兴奋冲昏了头脑,没有好好审视自我,竟然觉得面试通过的把握还是有的,毕竟有2年工作经验嘛。 准备过程 刷面试题,相信这是大多数小伙伴的惯用伎俩吧,每次换下家前刷面试题是必经流程。所谓刷面试题就是把职业相关基础知识在脑海中跑一遍,对于大神级的人物可以忽略这一步,能被众人膜拜肯定是有两把刷子的。我的感受是,刚开始找工作的时候,实际开发经验很少,看基础知识很费力,就像是过年回家爸妈带着我走远房亲戚一一介绍七大姨八大姑很难记住一样,各种关系根本不知道怎么联系到一起。经历过几个实际项目之后,刷面试题就会轻松很多。面试题的出发点是为了验证应聘者对基础知识的掌握程度,以及日常开发过程中遇到的问题,如果没有亲身经历过这些问题便很难理解。所以面试题不是用来背的。 了解岗位相关知识,不同大厂的面试流程是不同的,比如阿里从一面到给offer ,NAVER China和百度不接受电面,只能到公司面试等等。不同公司不同部门注重的点都是千差万别的,唯一不变的就是应聘岗位的基础知识。所以在刷面试题的基础上需要研究你所应聘的岗位,牵扯到哪些知识点和应用方面的问题

SpringBoot事务注解详解

两盒软妹~` 提交于 2020-12-05 10:53:57
点击上方 蓝色字体 ,选择“标星公众号” 优质文章,第一时间送达 作 者 | Kero小柯 来源 | cnblogs.com/kesimin/p/9546225.html 66套java从入门到精通实战课程分享 精品帖子大汇总 @Transactional spring 事务注解 1.简单开启事务管理 @EnableTransactionManagement // 启注解事务管理,等同于xml配置方式的 <tx:annotation-driven /> 2.事务注解详解 默认遇到throw new RuntimeException(“…”);会回滚 需要捕获的throw new Exception(“…”);不会回滚 指定回滚 @Transactional (rollbackFor=Exception.class) public void methodName () { // 不会回滚 throw new Exception( "..." ); } 指定不回滚 @Transactional (noRollbackFor=Exception.class) public ItimDaoImpl getItemDaoImpl () { // 会回滚 throw new RuntimeException( "注释" ); } 如果有事务,那么加入事务,没有的话新建一个(不写的情况下) @

SpringBoot事务注解详解

邮差的信 提交于 2020-12-05 10:42:40
@Transactional spring 事务注解 1.简单开启事务管理 @EnableTransactionManagement // 启注解事务管理,等同于xml配置方式的 <tx:annotation-driven /> 2.事务注解详解 默认遇到throw new RuntimeException(“…”);会回滚 需要捕获的throw new Exception(“…”);不会回滚 指定回滚 @Transactional(rollbackFor=Exception. class ) public void methodName() { // 不会回滚 throw new Exception("..." ); } 指定不回滚 @Transactional(noRollbackFor=Exception. class ) public ItimDaoImpl getItemDaoImpl() { // 会回滚 throw new RuntimeException("注释" ); } 如果有事务,那么加入事务,没有的话新建一个(不写的情况下) @Transactional(propagation=Propagation.REQUIRED) 容器不为这个方法开启事务 @Transactional(propagation=Propagation.NOT_SUPPORTED)

SpringBoot和SpringMVC的区别

守給你的承諾、 提交于 2020-12-05 10:41:27
Spring MVC提供了一种轻度耦合的方式来开发web应用。 Spring MVC是Spring的一个模块,是一个web框架。通过Dispatcher Servlet, ModelAndView 和 View Resolver,开发web应用变得很容易。解决的问题领域是网站应用程序或者服务开发——URL路由、Session、模板引擎、静态Web资源等等。 Spring Boot实现了自动配置,降低了项目搭建的复杂度。 对使用者来说,换用Spring Boot以后,项目初始化方法变了,配置文件变了,另外就是不需要单独安装Tomcat这类容器服务器了,maven打出jar包直接跑起来就是个网站,但你最核心的业务逻辑实现与业务流程实现没有任何变化。 Spring 是一个“引擎”; Spring MVC 是基于Spring的一个 MVC 框架; Spring Boot 是基于Spring4的条件注册的一套快速开发整合包。 来源: oschina 链接: https://my.oschina.net/u/2746716/blog/3128073

Springboot 定时任务,service层无法注入问题详细解决

亡梦爱人 提交于 2020-12-05 10:37:53
Springboot 定时任务,service层无法注入问题详细解决 参考文章: (1)Springboot 定时任务,service层无法注入问题详细解决 (2)https://www.cnblogs.com/doudou2018/p/10416043.html 备忘一下。 来源: oschina 链接: https://my.oschina.net/u/4312354/blog/4775833

Springboot和SpringMVC区别

ⅰ亾dé卋堺 提交于 2020-12-05 10:21:26
spring boot只是一个配置工具,整合工具,辅助工具. springmvc是框架,项目中实际运行的代码 Spring 框架 就像一个家族,有众多衍生产品例如 boot、security、jpa等等。但他们的基础都是Spring 的ioc和 aop,ioc 提供了依赖注入的容器, aop解决了面向横切面的编程,然后在此两者的基础上实现了其他延伸产品的高级功能。 Spring MVC提供了一种轻度耦合的方式来开发web应用。 它 是Spring的一个模块,是一个web框架。通过Dispatcher Servlet, ModelAndView 和 View Resolver,开发web应用变得很容易。解决的问题领域是网站应 用程序或者服务开发——URL路由、Session、模板引擎、静态Web资源等等。 Spring Boot实现了自动配置,降低了项目搭建的复杂度 。它主要是为了解决使用Spring框架需要进行大量的配置太麻烦的问题,所以它并不是用来替代Spring的解决方案,而是和Spring框架紧密结合用于提升Spring开发者体验的工具。同时它集成了大量常用的第三方库配置(例如Jackson, JDBC, Mongo, Redis, Mail等等),Spring Boot应用中这些第三方库几乎可以零配置的开箱即用(out-of-the-box)。 Spring

SpringBoot事务注解@Transactional

北慕城南 提交于 2020-12-05 10:17:49
<div class="markdown_views"> <p>SpringBoot提供了非常方便的事务操作,通过注解就可以实现事务的回滚,非常方便快捷,下面我们就说一下如何进行事务操作。</p> <h2 id="1-事务说明"><a name="t0"></a>1. 事务说明</h2> <p>在Spring中,事务有两种实现方式,分别是编程式事务管理和声明式事务管理两种方式。 <br> <strong>编程式事务管理:</strong> 编程式事务管理使用TransactionTemplate或者直接使用底层的PlatformTransactionManager。对于编程式事务管理,spring推荐使用TransactionTemplate。 <br> <strong>声明式事务管理:</strong> 建立在AOP之上的。其本质是对方法前后进行拦截,然后在目标方法开始之前创建或者加入一个事务,在执行完目标方法之后根据执行情况提交或者回滚事务。 <br> 声明式事务管理不需要入侵代码,通过@Transactional就可以进行事务操作,更快捷而且简单。推荐使用</p> <h2 id="2-如何使用"><a name="t1"></a>2. 如何使用</h2> <p>在Mybatis中使用事务,非常简单,只需要在函数增加注解@Transactional,无需任何配置

001. kogito初体验-环境准备及HelloWorld运行

血红的双手。 提交于 2020-12-05 09:59:07
工作流引擎一直都没有纳入我的知识范围,所以我并没有玩过jbpm, activiti这种传统的工作流引擎。无奈业务永远都做不完,所以终于要对BPM下手了。 1. 环境准备 截止到2020年10月19日,kogito最新版本是Pre-release 0.17.0,正式版1.0还在beta阶段。中文资料还太少,学习主要是从官方文档下手。还好kogito提供了很多的示例来满足一个工作流小白对这个框架的初体验。 $ git clone https://github.com/kiegroup/kogito-examples.git 准备工作可没这么简单,你还需要 IDE: VSCODE(官方推荐)+ kogito插件 JDK 11,为了避免一些可能存在的麻烦,我使用了openjdk 当下最新的15版。 MAVEN 3.6.2 or later 2. 示例:hello-world 2.1 运行示例 example项目下第一个示例,定义了一个脚本流程,如下图所示。 我们为这个流程指定一个唯一的process-id叫作: // 流程说明 1. 开始 - 入参name 2. 脚本任务 - SayHello,java,System . out . println ( "Hello " + name ) ; 3. 脚本任务 - UpdateMessage,java,kcontext .

【转】SpringBoot 注解事务声明式事务

﹥>﹥吖頭↗ 提交于 2020-12-05 06:58:19
文章来源: http://www.cnblogs.com/guozp/articles/7446477.html   springboot 对新人来说可能上手比springmvc要快,但是对于各位从springmvc转战到springboot的话,有些地方还需要适应下,尤其是xml配置。我个人是比较喜欢注解➕xml是因为看着方便,查找方便,清晰明了。但是xml完全可以使用注解代替,今天就扒一扒springboot中事务使用注解的玩法。   springboot的事务也主要分为两大类,一是xml声明式事务,二是注解事务,注解事务也可以实现类似声明式事务的方法,关于注解声明式事务,目前网上搜索不到合适的资料,所以在这里,我将自己查找和总结的几个方法写到这里,大家共同探讨 文章来源: http://www.cnblogs.com/guozp/articles/7446477.html springboot 之 xml事务 可以使用 @ImportResource("classpath:transaction.xml") 引入该xml的配置,xml的配置如下    <?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http:

利用SpringBoot+Logback手写一个简单的链路追踪

落花浮王杯 提交于 2020-12-05 06:55:55
最近线上排查问题时候,发现请求太多导致日志错综复杂,没办法把用户在一次或多次请求的日志关联在一起,所以就利用SpringBoot+Logback手写了一个简单的链路追踪,下面详细介绍下。 [TOC] 一、实现原理 Spring Boot默认使用LogBack日志系统,并且已经引入了相关的jar包,所以我们无需任何配置便可以使用LogBack打印日志。 MDC(Mapped Diagnostic Context,映射调试上下文)是log4j和logback提供的一种方便在多线程条件下记录日志的功能。 实现思路是在一个请求开始时,将请求相关的上下文信息(例如客户ID、客户的IP地址、sessionId、请求参数等)添加到MDC,然后配置好logback-spring.xml,则Logback组件将会在每条日志中打印出存放到MDC的信息,从而实现一个ID贯穿用户的所有操作。 二、代码实战 新建一个spring boot项目spring-boot-log,按照下面步骤操作。 新建日志拦截器 日志拦截器在请求开始获取用户的sessionId,当然也可以生成一个UUID,生成后存放到MDC中。 SessionInterceptor代码如下: /** * 日志拦截器 * @Author: Java碎碎念 * */ public class SessionInterceptor extends