Spring Boot

初涉springboot(一)

隐身守侯 提交于 2020-12-13 21:51:29
概述   1、了解springboot的作用   2、构建第一个springboot项目 一、springboot的作用   ① 原先在构建SSM项目的时候,可以感觉到,在一些不是很大的项目,构建配置文件的过程所需的时间花费甚至超过项目本身的业务,每次构建一个新项目都得搞各种配置文件(xml\configuration类)。我们需要一些自动化的配置,springboot可以做到。   ② 近几年随着业务增加,流量增大等原因,所有业务堆积在一个项目是很恐怖的,一个项目里面光理清业务逻辑就很压力,更别说后期开发,到了集群时期,多个服务器部署相同的项目,改一个业务就得重新挨个部署,效率低下,就有人(Josh Evans大神)提出微服务的架构,他认为服务应该是独立个体(大概这意思)。随着技术发展,业务逐渐被独立出来,形成能独立执行的个体,分散在各个服务器中,也就是微服务架构,各个服务通过中间件交流,而springcloud就是实现微服务架构的技术之一,而了解springcloud,则先需要了解springboot。 二、构建第一个springboot项目   以往构建spring项目,我们需要导入jar包或maven依赖,再配置一下 spring的配置文件(xml或@Configuration标注的类) ,之后在web.xml配置启动时加载spring容器,光是个启动就要做那么多事

Spring Boot:ApplicationEvent和ApplicationEventListener事件监听

纵然是瞬间 提交于 2020-12-13 14:45:00
采用事件监听的好处 以用户注册的业务逻辑为例,用户在填写完信息表单后,提交信息到后台,后台对用户信息进行处理,然后给用户返回处理结果的信息。 如上图所示,用户在注册时,后台需要处理一些系列流程,实际业务逻辑可能更加复杂。这样写很直观,但是不利于后期新业务逻辑的添加。 如果采用事件监听的模式,上面的流程就可以变成如下: 用户在注册的过程中,发送一个信号给监听对象,而这个信号就是用户正在注册的事件,监听对象在收到信号时,就会在后台处理这些流程,如果采用异步事件处理的方式,用户的主干逻辑可以快速完成,而且如果后期需要在注册流程中加入新的逻辑也只需要在监听对象处理事件的过程中加入新的逻辑。 实际代码演示 首先是项目结构,如下 controller 处理用户注册请求 service 处理用户注册逻辑 event 存放事件对象 listener 在event的子目录下 监听并调用逻辑处理事件 config 存放配置文件 原本还应该有entity和repository层,为简化逻辑,暂时不加 非异步事件处理 编写用户注册事件类,放在 event 包内,这个类可以根据需求添加一些属性,而这些属性就是代表发生这件事的基本信息。可以通俗的理解,要知道一件事,前提肯定要知道是什么事情。我在这里添加了属性username,表示用户名。 public class UserRegisterEvent

JVM 运行时数据区详解,写得非常好!

ⅰ亾dé卋堺 提交于 2020-12-13 12:59:30
Java技术栈 www.javastack.cn 关注阅读更多优质文章 作者:小小木的博客 www.cnblogs.com/wyc1994666/p/11795781.html 在接下来的几天想总结下,JVM相关的一些内容,比如下面的这三个内容算是比较核心知识点了 1. 运行时数据区域: 在运行时数据区里存储类Class文件元数据(方法区),对象和数组(堆),方法参数局部变量(栈)等。 2. 垃圾回收机制: java 语言的优势之一就是它的自动内存管理,主要回收运行时数据区域的堆内存里的数据 3. 类加载机制: 虚拟机首先需要把编译完成的字节码文件通过类加载器来加载到运行时数据区域 一个段Java代码的生命周期都会少不了上图这几个步骤,也就是Java代码首先会被编译成字节码文件,之后被类加载器加载到运行时数据区域,以及运行,垃圾收集器回收对象等等。 但今天我想介绍第一个知识点《运行时数据区域》 1 运行时数据区 Java虚拟机定义了一系列逻辑数据区域,有些是随着虚拟机的启动而创建,虚拟机的关闭而销毁。还有一部分是随着线程生命周期创建销毁的。 我们有必要深入了解这块的内容,因为它将决定服务器性能,首先我们需要对整个运行时区域由整体的认识并且了解了每个区域的生命周期以及作用之后才能通过相应的调参来提升系统性能。除此之外还有助于快速定位虚拟机的相关Error.

【SpringBoot】国际化

痴心易碎 提交于 2020-12-13 12:41:17
SpringBoot 国际化 SpringBoot进行国际化 properties中文乱码 SpringBoot 国际化的自动配置 AcceptHeaderLocaleResolver 自定义LocaleResolver 原理 SpringBoot进行国际化 编写国际化配置文件,抽取页面需要显示的国际化消息 在全局配置文件中写我们配置的位置 原理就是 SpringBoot自动配置好了管理国际化资源文件的组件 MessageSourceAutoConfiguration会去全局配置文件中找spring.messages开头的 找到对应的国际化配置文件 其中etBasename()的默认返回值是messages,也就是我们的国际化资源文件的名字可以直接写成messages,这样就不用再在全局配置文件中配置我们自己写的名字了 去页面获取国际化的值 SpringBoot用的模板引擎是Thymeleaf, 通过#{}来获取国际化资源的值 properties中文乱码 properties中写中文后 会有乱码问题我们可以在Idea设置 SpringBoot 国际化的自动配置 在SpringBoot中的WebMvcAutoConfiguration类中的localeResolver方法就是关于国际化的自动配置 LocalResolver用来获取区域信息对象 localeResolver()方法:

拿去,8个Python高效数据分析的技巧!

强颜欢笑 提交于 2020-12-13 10:26:32
Python实战社群 Java实战社群 长按识别下方二维码, 按需求添加 扫码关注添加客服 进Python社群▲ 扫码关注添加客服 进Java社群 ▲ 文章来源于网络 来源|CSDN 这篇文章介绍了8个使用Python进行数据分析的方法,不仅能够 提升运行效率,还能够使代码更加“优美”。 1 一行代码定义List 定义某种列表时,写For 循环过于麻烦,幸运的是,Python有一种内置的方法可以在一行代码中解决这个问题。下面是使用For循环创建列表和用一行代码创建列表的对比。 x = [1,2,3,4] out = [] for item in x: out.append(item**2) print(out) [1, 4, 9, 16] # vs. x = [1,2,3,4] out = [item**2 for item in x] print(out) [1, 4, 9, 16] 2 Lambda表达式 厌倦了定义用不了几次的函数?Lambda表达式是你的救星!Lambda表达式用于在Python中创建小型,一次性和匿名函数对象, 它能替你创建一个函数。 lambda表达式的基本语法是: lambda arguments: expression 注意! 只要有一个lambda表达式,就可以完成常规函数可以执行的任何操作。 你可以从下面的例子中,感受lambda表达式的强大功能

推荐一款超美观的 Vue+Element 开源后台管理 UI

↘锁芯ラ 提交于 2020-12-13 07:06:22
点击▲关注 “ 爪哇妹 ” 给公众号标星置顶 更多摄影技巧 第一时间直达 EuiAdmin是基于Vue+Element等组件联合开发的一个免费的开源后台,你可以通过(euiadmin.com)进行下载和体验,此后台免费开源,可以直接免费使用。 免费开源后台主要为了能够减少开发者的时间,可以快速构建一个后台管理系统,为大家提供一个简单的学习环境。 1. 亮点 1、 支持后台自定义 2、 多页面自定义 3、 TinyMce富文本支持 4、 左侧菜单收缩、伸展 5、 Echarts图表支持 2. 主要 JavaScript 库 Vue+Element-Ui+vue-router+vue-cookies+echarts,通过四个JavaScript库你可以更简单的更快的使用后台。 3. EuiAdmin 图片集 登录 集成登录+注册+密码找回 主页 富文本 集成Vue最强tinymce富文本编辑器,可以满足基础的文本编辑 丰富动画 Animate动画助力EuiAdmin成长,可以直接将需要的动画进行选择将"动画 class名"的内容放到需要的class中便可以实现动画 用户表格 所有数据为JavaScript数据虚拟生成,如有雷同纯属意外。支持页面和条数切换 Echarts图表 常用网站设置-网站设置 高级自定义 可以自定义网站基础颜色、菜单颜色等 4. 怎样获取 你可以通过访问 www

springboot+rabbitmq整合

橙三吉。 提交于 2020-12-13 06:59:39
1.安装好rabbitmq 2.新建一个springBoot项目:rabbitmq_demo 3.添加pom依赖: <dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-test</artifactId> <scope>test</scope> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-amqp</artifactId> </dependency> </dependencies> 4.application.properties: server.port=8080 spring.application.name=rabbitmq_demo spring.rabbitmq.host=localhost spring.rabbitmq

为了忽悠大厂面试官,熬夜总结了这些Spring面试题!

北战南征 提交于 2020-12-12 23:47:08
前言 如果说 Java 工程师,有什么一定要“死磕”拿下的东西,那一定是 Spring 无疑了。众所周知,Spring 无论在 Java 生态系统,还是在就业市场, Spring Boot、Spring Framework、Spring Data、Spring Cloud、Spring Security、Spring Session等都是Spring Framework 的基石,面试出镜率之高,无出其右。 先分享一个Spring知识点思维导图给大家 1.说说Spring 里用到了哪些设计模式? 单例模式:Spring 中的 Bean 默认情况下都是单例的。无需多说。 工厂模式:工厂模式主要是通过 BeanFactory 和 ApplicationContext 来生产 Bean 对象。 代理模式:最常见的 AOP 的实现方式就是通过代理来实现,Spring主要是使用 JDK 动态代理和 CGLIB 代理。 模板方法模式:主要是一些对数据库操作的类用到,比如 JdbcTemplate、JpaTemplate,因为查询数据库的建立连接、执行查询、关闭连接几个过程,非常适用于模板方法。 2.谈谈你对IOC 和 AOP 的理解?他们的实现原理是什么? IOC 叫做控制反转,指的是通过Spring来管理对象的创建、配置和生命周期,这样相当于把控制权交给了Spring

MyBatis实现一对一,一对多关联查询

℡╲_俬逩灬. 提交于 2020-12-12 17:34:17
MyBatis如何实现一对一,一对多查询的? 可以通过关联查询实现。关联查询是几个表联合查询,只查询一次,通过在resultMap里面的association,collection节点配置一对一,一对多的类就可以完成 具体实现如下 准备数据库表结构与数据 班级classes与老师teacher是一对一的关系 班级classes与学生student是一对多的关系 SET NAMES utf8mb4; SET FOREIGN_KEY_CHECKS = 0; -- ---------------------------- -- Table structure for classes -- ---------------------------- DROP TABLE IF EXISTS `classes`; CREATE TABLE `classes` ( `c_id` int(11) NOT NULL AUTO_INCREMENT COMMENT '班级id', `c_name` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '班级名', `teacher_id` int(11) NULL DEFAULT NULL COMMENT '老师id', PRIMARY KEY

Spring Boot 能给我们带来什么?Spring项目配置开发环境及Maven

余生颓废 提交于 2020-12-12 17:27:18
1、Spring Boot 能给我们带来什么? 独特见解:简而言之 SpringBoot就像一个集装箱,对其他组件是可插拔开箱即用,只要你需要开启自动配置即可。 约定优于配置:Spring Boot 中很多配置都可以选用默认配置。 独立运行:Spring Boot 内嵌有 Tomcat、Jetty 等 Web 容器,不需要单独集成,从而直接运行和部署。 生产应用:Spring Boot 可以提供用于生产的应用监控指标、心跳检查、甚至加载外部配置等功能。 2、 配置开发环境 第一步:安装 jdk 环境,推荐使用 jdk8。原因是目前 Spring5.0及其以上的版本都必须是 jdk8. 第二步:介绍一款 Spring 定制开发者 IDE:Spring Tools Suite简称 STS。它是 一个专门开发 Spring 项目的Eclipse工具。使用步骤如下: 2.1、选择操作系统对应的 STS下载 2.2、解压,并打开STS.exe 即可。界面跟Eclipse 一样。 3、Maven介绍 我们在创建一个 Java 工程的时候,如果想要使用其他框架或者技术,我们就必须依赖其他第三方的 jar 包,那么在创建工程时需要导入 jar 包,最终添加到 classpath 中。那么问题就来了,我们这些依赖的 jar 包从哪儿来?这时我们使用 maven 这个 jar