Spring Boot

Spring框架

末鹿安然 提交于 2020-12-27 00:25:02
Spring框架自2002年诞生以来一直备受开发者青睐,它包括SpringMVC、SpringBoot、Spring Cloud、Spring Cloud Dataflow等解决方案。有人亲切的称之为:Spring 全家桶。 很多研发人员把spring看作心目中最好的java项目,没有之一。所以这是重点也是难点,工作中必须会,面试时肯定考。 那么,不妨花费10分钟,梳理Spring框架相关知识。 Spring知识点-汇总 spring系列包含非常多的项目,可以满足java开发中的方方面面。 先来看常用框架的知识点汇总,如图: 一、5个常用的spring框架 ▌1.spring framework 也就是我们经常说的spring框架,包括了ioc依赖注入,Context上下文、bean管理、springmvc等众多功能模块,其它spring项目比如spring boot也会依赖spring框架。 ▌2.spring boot 它的目标是简化Spring应用和服务的创建、开发与部署,简化了配置文件,使用嵌入式web服务器,含有诸多开箱即用的微服务功能,可以和spring cloud联合部署。 Spring Boot的核心思想是约定大于配置,应用只需要很少的配置即可,简化了应用开发模式。 ▌3.Spring Data 是一个数据访问及操作的工具集,封装了多种数据源的操作能力,包括

com.mysql.jdbc.Driver 和 com.mysql.cj.jdbc.Driver

左心房为你撑大大i 提交于 2020-12-26 15:08:54
一、 MySQL Connector / J 概述 1. MySQL Connector / J MySQL通过MySQL Connector / J为使用Java编程语言开发的客户端应用程序提供连接。Connector / J实现了 Java数据库连接(JDBC)API以及它的许多增值扩展。它还支持新的X DevAPI。 MySQL Connector / J是JDBC Type 4驱动程序,实现了 JDBC 4.2规范。Type 4表示驱动程序是MySQL协议的纯Java实现,并且不依赖MySQL客户端库。有关兼容性的信息,请参见下表 连接器/ J版本以及它们要求的MySQL和Java版本。 对于使用通用数据访问设计模式的大型程序,请考虑使用流行的持久性框架之一,例如Hibernate, Spring的JDBC模板或MyBatis SQL Maps,以减少用于调试,调整,保护和维护的JDBC代码量。保持。 Connector / J版本 JDBC版本 MySQL服务器版本 JRE版本 JDK版本 状态 8.0 4.2 5.6、5.7、8.0 JRE 8或更高 JDK 8.0或更高版本 推荐版本 5.1 3.0、4.0、4.1、4.2 5.6、5.7、8.0 JRE 5或更高 JDK 5.0和JDK 8.0或更高版本 一般可用性 2. mysql-connector-java

springMvc接口开发--对访问的restful api接口进行拦截实现功能扩展

非 Y 不嫁゛ 提交于 2020-12-26 12:15:32
1、视频参加Spring Security开发安全的REST服务\PART1\PART1 3-7 使用切片拦截REST服务三通it学院-www.santongit.com-.mp4 讲的比较的经典,后面我也会通过案例来对代码进行分析 restful api的拦截主要有下面的三个部分,我们一一对这个三个部分进行讲解 1.第一时间filter过滤器要记录处理每个请求服务的时间 在springboot中没有web.xml配置文件,那如何把一个filter添加到springboot中了 我们编写一个配置类,注册一个FilterRegisterrationBean,把我们的filter注册进去,指定我们filter过来的url 启动成功之后,日志信息为 filter最大的问题参数中只能得到request对象,reponse对象,获得其中的参数 如果要获得当前的restful api是那个springmvc的control和方法做处理,filter是无法完成的 我们可以使用springmvc框架的拦截器来实现这个功能 springmvc的拦截器需要实现HandlerInterceptor接口 有三个方法 preHandle postHandler afterCompletion prehandle在实际调用的control中的方法被执行之前,会先执行preHandle

Docker部署SpringBoot项目

别等时光非礼了梦想. 提交于 2020-12-26 12:13:36
1.准备一个SpringBoot项目 2.安装Docker Docker运行在CentOS 7上,要求操作系统为64位,内核版本为3.10及以上。 确认本机已经安装了满足要求的Linux内核。使用命令 uname -r 来检查内核版本信息。 [root@localhost ~]# uname -r 3.10.0-957.el7.x86_64 安装Docker 使用命令yum install -y docker安装Docker,“-y”表示不询问,使用默认配置进行安装。 启动Docker服务,并设置为开机自启动 #启动 systemctl start docker.service #开启自启动 systemctl enable docker.service #查看docker版本 docker version 3.配置DockerFile文件 新建文件夹并创建对应文件 cd /home mkdir DockerDeploy cd DockerDeploy touch Dockerfile #插入如下内容 FROM java:8 VOLUME /tmp ADD my-blog-4.0.0-SNAPSHOT.jar app.jar RUN bash -c "touch /app.jar" EXPOSE 8080 ENTRYPOINT ["java","-Djava.security

十二个Java程序员必须掌握的Java开发框架

两盒软妹~` 提交于 2020-12-26 06:25:24
  十二个Java程序员必须掌握的Java开发框架有哪些?Java 开发应用很广泛,所以程序员就业行业和方向也很多,随着互联的发展,人工智能、大数据、区块链,很多Java 程序员选择Java Web/后端开发。然而程序员之前的区别还是很大的,如果想要拿高薪,作为一个程序员需要不断学习。   十二个必须掌握Java开发框架如下:   Java开发框架一、Spring   毫无疑问,Spring 框架现在是 Java 后端框架家族里面最强大的一个,其拥有 IOC 和 AOP 两大利器,大大简化了软件开发复杂性。并且,Spring 现在能与所有主流开发框架集成,可谓是一个万能框架,Spring 让 JAVA 开发变得更多简单。   Java开发框架二、Spring MVC   Spring MVC 是一个 MVC 开源框架,用来代替 Struts。它是 Spring 项目里面的一个重要组成部分,能与 Spring IOC 容器紧密结合,以及拥有松耦合、方便配置、代码分离等特点,让 JAVA 程序员开发 WEB 项目变得更加容易。   Java开发框架三、Spring Boot   Spring Boot 是 Spring 开源组织下的一个子项目,也是 Spring 组件一站式解决方案,主要是为了简化使用 Spring 框架的难度,简省繁重的配置。   Spring

领域驱动设计,让程序员心中有码(五)

爷,独闯天下 提交于 2020-12-26 06:02:31
题图 From unsplash 本系列是由溪源的《领域驱动设计》读书笔记梳理而成,已经是写到第五篇了,为溪源的坚持点赞。 1 从搬砖谈领域对象   有一个古老的故事,大概是这样的。作者问三个建筑工地上的工人他们在干什么?有一个没精打采的说,我在挖洞!而另一一个人却说,我在盖一座房子。还有一个人说,我在建立一座巨大的城市。不同的思维模式决定了不同的发展,十年过后,第一个工人,还是在挖洞,而第二个则成为了工头。第三个最终却成为了大设计师。   在软件开发领域,往往会使用搬砖这个词来形容我们所开发的每个功能模块,实际上也确实如此,如果把我们需要完成的每个项目,比作一座高楼大厦,那么在项目中所完成的各种模块,也确实是我们在计算机世界中利用砖块设计出来的精美建筑构建。而从领域驱动的角度来说,可以把关系,类比为建筑工程图纸中使用的各种辅助线,也可以把领域驱动中所涉及的各个对象,类比成砖块,这些砖块,大概有两种:一种是实体(Entity),一种是值对象(Value Object),而使用这些对象的工具,则成为服务(Service),完成的各个建筑构建,被成为包或者模块(Module). 2 关联关系   在介绍领域驱动设计的第三篇文章《 领域驱动设计,让程序员心中有码(三) 》中,笔者提到了UML中常用的几种关系,而关联关系是一种最为常见的关系。在软件设计过程中,无所不在的关联

带着新人学springboot的应用05(springboot+RabbitMQ 上)

孤街浪徒 提交于 2020-12-26 02:18:22
  这次就来说说RabbitMQ,这个应该不陌生了,随便一查就知道这个是用来做消息队列的。 (注意:这一节很多都是概念的东西,需要操作的比较少)   至于AMQP协议(Advanced Message Queuing Protocol),专业名称叫做高级消息队列协议,就是只要你遵守这个协议,那么做出来的产品就能跨平台,跨语言,很牛的一个协议,具体多么牛可以自己百度一下。   而RabbitMQ就是基于这个协议的!很多语言都可以用RabbitMQ,例如python,C语言,PHP,Java等语言,而且windows,linux,macos等平台都可以使用。。。 简单看看使用场景:   运用场景1:比如大家注册博客园的时候,注册信息写入数据库之后,还需要激活吧!你要等博客园的一个线程给你发邮件,假如这个时候注册的人很多,那就需要非常多的线程,大家也知道线程到达一定数目效率反而是降低的,而且只有等到邮件给你发送之后你才知道注册成功,你就可能一直卡了几分钟。所以这个时候,就把很多个发邮件需要的消息放到一个消息队列中你就马上收到响应“注册成功”,然后你就可以去玩玩手机,等一下就会收到邮件,其实对博客园来说,只需要几个或者几十个线程慢慢的从这个队列中取消息、一个一个慢慢发邮件就是了。   运用场景二:大家都知道双11,淘宝各种活动,假如一个店铺生意特别好,一下子卖了十几万件

SpringBoot简单讲解

本小妞迷上赌 提交于 2020-12-26 00:55:59
1.SpringBoot简易实现 @SpringBootApplication public class BaseSystemWebApplication {   public static void main(String[] args) {     SpringApplication.run(BaseSystemWebApplication.class, args);   } } 2.SpringBoot热部署 pom.xml添加jar 使用idea还需设置 快捷键 Ctrl+Shift+Alt+/ 选择Registry 3.SpringBoot实现原理 查看@SpringBootApplication注解,其主要注解@SpringBootConfiguration、EnableAutoConfiguration、ComponentScan,可以不使用SpringBootApplication注解,使用这三个代替。 查看EnableAutoConfiguration,没什么代码查看导入类 EnableAutoConfigurationImportSelector,没什么代码查看导入类父类 AutoConfigurationImportSelector 查看AutoConfigurationImportSelector选择导入类代码,查看获取配置类方法 读取配置插件在META

Spring Boot 中使用 Quartz 实现任务调度

拟墨画扇 提交于 2020-12-26 00:54:54
Quartz 概述 Quartz 是 OpenSymphony 开源组织在 Job Scheduling 领域又一个开源项目,它可以与 J2EE、 J2SE 应用程序相结合也可以单独使用。 Quartz 可以用来创建简单或为运行十个,百个,甚至是好几万个 Jobs 这样复杂的程序。Jobs 可以做成标准的 Java 组件或 EJBs。 Quartz 使用场景 Quartz 是一个任务调度框架。比如你遇到这样的问题: 每天 01:00 发送一份工作邮件给工作组成员并抄送给老板(假装自己很努力的工作到深夜) 每月 2 号提醒自己还信用卡或自动还款 每秒钟发 N 笔脏数据给竞争对手公司的服务器 ...... 这些问题总结起来就是:在某一个有规律的时间点干某件事。并且时间的触发的条件可以非常复杂,复杂到需要一个专门的框架来干这个事。 Quartz 就是来干这样的事,你给它一个触发条件的定义,它负责到了时间点,触发相应的 Job 起来干活。 cron 表达式 cron 是 Linux 系统用来设置计划任务的,比如:每天晚上 12 点重启服务器。 一个 cron 表达式具体表现就是一个字符串,这个字符串中包含 6~7 个字段,字段之间是由空格分割的,每个字段可以由任何允许的值以及允许的特殊字符所构成,下面表格列出了每个字段所允许的值和特殊字符。 字段 允许值 允许的特殊字符 秒 0-59 ,

SpringBoot原理讲解

和自甴很熟 提交于 2020-12-25 20:03:02
一.问题的引入 首先我们来看一个最简单的例子。 我们先创建一个SpringBoot的工程,如何创建一个SpringBoot工程就不说了,不会请自行解决。然后写一个controller类,通过请求路径,返回HelloWorld在浏览器页面上显示。   上面两张图就是程序的一个整体的结构和运行的结果,那么问题来了,SpringBoot程序中没有任何配置,不像Spring框架,写一大堆配置信息在xml文件中,那么程序是怎么将我们这里的Controller类扫描到spring容器中的呢? 二.原理讲解。 首先第一点,我们来看一下SpringBoot的启动类, package com.example.demo; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; @SpringBootApplication public class DemoApplication { public static void main(String[] args) { //启动SpringBoot应用 SpringApplication.run(DemoApplication.class, args); } }    其中