Spring Boot

看看人家SpringBoot的全局异常处理多么优雅...

拈花ヽ惹草 提交于 2020-12-01 19:12:44
作者: 虚无境 https://www.cnblogs.com/xuwujing/p/10933082.html SpringBoot全局异常准备 说明:如果想直接获取工程那么可以直接跳到底部,通过链接下载工程代码。 开发准备 环境要求 JDK :1.8 SpringBoot :1.5.17.RELEASE 首先还是Maven的相关依赖: <properties> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> <java.version>1.8</java.version> <maven.compiler.source>1.8</maven.compiler.source> <maven.compiler.target>1.8</maven.compiler.target> </properties> <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>1.5.17.RELEASE</version> <relativePath /> </parent> <dependencies> <!-- Spring Boot

外包Java后端开发三年,年底跳槽两个月如何应付面试?

◇◆丶佛笑我妖孽 提交于 2020-12-01 18:12:11
目录 前言 1.整理一份思维导图 2.搜集一些大厂真题面试题自己解答 3. 不断的复述和巩固知识点 4. 加深技术的厚度 5. 出去装X吧 打铁还需自身硬(此方法不适合所有人) 小黄鸭学习法 关于结构化思维 5W1H法 链路法 其他方法 算法的学习方法 金玉良言 前言 以java面试为例,每一年的重点都是不一样的,招聘要求中可能出现你没有使用过的技术, 如:RPC、springboot、docker等。如果,2个月后要去面试,你心仪的公司,招聘要求上出现这样的你没有用过的技术,都不知道面试官会问这个技术的哪些问题。每年新出现的技术很多,但大部分是属于针对特定应用领域的编程框架。比如十几年前的各类Web编程框架,十年前的中间件框架,最近几年的深度学习框架等等。要快速掌握一个技术,需要学习的内容分为领域知识和框架两部分,并在此基础上要做一些实例来练习。领域知识是针对这个领域内通用的,即便是换个框架也能用的上。而框架知识则是领域知识的封装,方便编程使用的。 小编在这里总结了一篇学习方法,只要你本身不是很菜,用此方法两个月足够学好多个技术,而且是真学会、可以拿出来用的那种。需要注意的是,此方法对于大部分技术都很有效(比如java,spring,Redis、网络、操作系统等等),但对于算法、数据结构、设计模式这种需要慢慢积累基本功的不太有效。 1.整理一份思维导图

阿里P8大牛的10万字《Java架构进阶面试知识笔记》全能架构师的资源全在这了!

生来就可爱ヽ(ⅴ<●) 提交于 2020-12-01 14:56:00
利用空余时间整理了一份《Java架构进阶核心知识点笔记》,初衷也很简单,就是希望在面试的时候能够帮助到大家,减轻大家的负担和节省时间。 之前有分享过这份知识点笔记的初稿,现在又对知识点笔记进行了一定的优化。于是有了现在的V2.0版本的面试手册。 有需要的朋友可以在文末获取领取方式! 废话不多说,本手册目前为第二版,内容有以下板块: 基础篇 JVM篇 多线程&&并发篇 Spring篇 MyBatis篇 SpringBoot篇 MySQL篇 Redis篇 SpringCloud篇 Nginx篇 MQ篇 MongDB篇 设计模式篇 分布式篇 数据结构与算法篇 Linux篇 简历篇 整个小册子目前 六万 字左右,部分截图: 为了不影响阅读,这些知识点模块都整理出了详细的图文,有需要的朋友麻烦转发关注后扫描小编的二维码即可免费领取!!! 最后,还给大家带来了一份全面的面试宝典,想要领取的朋友们只需要扫描小编的二维码即可免费领取!!! 来源: oschina 链接: https://my.oschina.net/u/4409765/blog/4767625

中小型项目用SpringBoot太大了,要不要尝试一下Martian?

你离开我真会死。 提交于 2020-12-01 10:26:48
项目简介 Martian 是一个声明式API编程 (DAP) 的Java开发框架 以HttpServer作为 http服务,彻底脱离Tomcat这一类的Web容器和Servlet,同时也让项目减少了几个依赖 声明式API,让Controller变成了一个interface,降低了开发的工作量 拥有其他web框架 拥有的大部分功能,比如AOP,IOC,声明式事务,异常监听等 拥有自主开发的 半ORM持久层框架,并天然的集成到了Martian中 如果你不喜欢HttpServer,我们也提供了Tomcat启动器 项目生态 【分布式组件】 Martian-cloud 【网关及其他组件】 Martian-gateway 【更多组件】筹划中 官方文档 http://mars-framework.com/doc.html?tag=martian 使用示例 https://github.com/yuyenews/Mars-Example 项目特性 一、声明式API 只需要在你的interface上加上一个注解,即可对外提供一个接口,并且我们还支持传统的Controller写法 @MarsApi(refBean="要引用的bean的name")public interface TestApi { 返回类型 selectList(TestDTO testDTO); } 二、单表增删改查无sql //

SpringBoot 项目如何在tomcat容器中运行

风格不统一 提交于 2020-12-01 07:08:35
一. SpringBoot内嵌容器的部署方式 SpringBoot内部默认提供内嵌的tomcat容器,所以可以直接打成jar包,丢到服务器上的任何一个目录,然后在当前目录下执行 java -jar demo.jar 即可运行,但是这种方式的运行退出进程就结束了。如果想在后台可以运行,则需要执行 java -jar demo.jar > log_demo.file 2>&1 & 即可在后台运行该服务了,log_demo.file是日志文件。如需停止该进程 执行 ps -ef|grep java 找到对应的进程 kill 进程ID 即可 二. 使用外部的tomcat部署方式 pom.xml文件,dependencies中添加: <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-tomcat</artifactId> <scope>provided</scope> </dependency> 在pom.xml文件中,project下面packaging标签改为 <packaging>war</packaging> 将项目的启动类Application.java继承SpringBootServletInitializer并重写configure方法

springboot 获取控制器参数的几种方式

耗尽温柔 提交于 2020-12-01 07:03:04
这里介绍springboot 获取控制器参数有四种方式 1、无注解下获取参数 2、使用@RequestParam获取参数 3、传递数组 4、通过URL传递参数 无注解下获取参数 无注解下获取参数,需要控制器层参数与HTTP请求栏参数名称一致,这样后台就可以获取到请求栏的参数。 /** * 无注解获取参数时,参数名称和HTTP请求参数必须一致 * @param name String 姓名 * @param age int 年龄 * @param score double 分数 * @return 响应json字符-@ResponseBody注解将map转为json */ @RequestMapping("/param/noannotation") @ResponseBody public Map<String, Object> noAnnotation(String name,int age, double score) { Map<String, Object> paramMap = new HashMap<String, Object>(); paramMap.put("name", name); paramMap.put("age", age); paramMap.put("score", score); return paramMap; } 方法中,我们接收三个参数

Springboot 集成redis

自闭症网瘾萝莉.ら 提交于 2020-12-01 03:05:47
这里只做单机版简单集成,不过为项目中使用 1.在pom文件中引入支持 <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-redis</artifactId> </dependency> <!-- springboot2.0的redis整合包多出lettuce连接池,需要commons-pool2 --> <dependency> <groupId>org.apache.commons</groupId> <artifactId>commons-pool2</artifactId> </dependency> 2.直接在类中注入使用RedisTemplate @RunWith(SpringRunner.class) @SpringBootTest public class RedisTest { @Autowired private StringRedisTemplate stringRedisTemplate; @Autowired private RedisTemplate<String, User> redisTemplate; @Test public void test() throws Exception {

SpringBoot(十)_springboot集成Redis

痞子三分冷 提交于 2020-12-01 02:41:13
Redis 介绍 Redis是一款开源的使用ANSI C语言编写、遵守BSD协议、支持网络、可基于内存也可持久化的日志型、Key-Value高性能数据库。 数据模型 Redis 数据模型不仅与关系数据库管理系统(RDBMS)不同,也不同于任何简单的 NoSQL 键-值数据存储。Redis 数据类型类似于编程语言的基础数据类型,所以开发人员感觉很自然。每个数据类型都支持适用于其类型的操作。受支持的数据类型包括: string(字符串) hash(哈希) list(列表) set(集合) zset(sorted set:有序集合) 关键优势 Redis 的优势包括它的速度、它对富数据类型的支持、它的操作的原子性,以及它的通用性: 读速度为110000次/s,写速度为81000次/s,性能极高。 丰富的数据类型,Redis 对大多数开发人员已知道的大多数数据类型提供了原生支持,这使得各种问题得以轻松解决。 原子性,因为所有 Redis 操作都是原子性的,所以多个客户端会并发地访问一个 Redis 服务器,获取相同的更新值。 丰富的特性,Redis 是一个多效用工具,有非常多的应用场景,包括缓存、消息队列(Redis 原生支持发布/订阅)、短期应用程序数据(如 Web 会话、Web 页面命中计数)等。 springboot集成Redis 1、创建集成redis的springboot项目

LeetCode55|二叉树的层次遍历II

孤人 提交于 2020-12-01 02:00:53
1,问题简述 给定一个二叉树,返回其节点值自底向上的层次遍历。 (即按从叶子节点所在层到根节点所在的层,逐层从左向右遍历) 2,示例 例如: 给定二叉树 [ 3 , 9 , 20 , null , null , 15 , 7 ], 3 / \ 9 20 / \ 15 7 返回其自底向上的层次遍历为: [ [15,7 ], [ 9,20 ], [ 3 ] ] 3,题解思路 队列的使用 4,题解程序 import java.util.ArrayList; import java.util.LinkedList; import java.util.List; import java.util.Queue; public class LevelOrderBottomTest { public static void main (String[] args) { TreeNode t1 = new TreeNode( 3 ); TreeNode t2 = new TreeNode( 9 ); TreeNode t3 = new TreeNode( 20 ); TreeNode t4 = new TreeNode( 15 ); TreeNode t5 = new TreeNode( 7 ); t1.left = t2; t1.right = t3; t3.left = t4; t3.right

SpringBoot Redis 订阅发布

馋奶兔 提交于 2020-12-01 01:58:07
一 配置application.yml spring: redis: jedis: pool: max -active: 10 min -idle: 5 max -idle: 10 max -wait: 2000 port: 6379 host: 192.168.1.88 timeout: 1000 二 实现监听 package com.example.demo.common; import org.springframework.data.redis.connection.Message; import org.springframework.data.redis.connection.MessageListener; import org.springframework.stereotype.Component; /** * @author Tyler * @date 2019/7/11 */ @Component public class RedisMessageListener implements MessageListener { @Override public void onMessage(Message message, byte [] bytes) { String body = new String(message.getBody()); String