Java EE

互联网的寒冬下各大一线互联网公司还在用SpringBoot这是为什么?

微笑、不失礼 提交于 2020-08-18 02:35:20
引言 现在各大技术社区 Spring Boot 的文章越来越多,Spring Boot 相关的图文、视频教程越来越多,使用 Spring Boot 的互联网公司也越来越多; Java 程序员现在出去面试, Spring Boot 已经成了必问的内容。 一切都在证明,Spring Boot 已经成为了 Java 程序员必备的技能。并且可以预见的是未来 Spring Boot 的发展还会更好。 所以对Java程序员来说其中不乏说对 Spring Boot 非常熟悉的,然后当问到一些 Spring Boot 核心功能和原理的时候,没人能说得上来,或者说不到点上,可以说一个问题就问趴下了!(问题:你能讲下为什么我们要用 Spring Boot 吗?) 相信我,上面这些类似的问题,90%有经验的Java程序员超都曾遇见过!但很少有系统化的回答。 因此,总结了这份Spring Boot核心知识点实战教程,通过这份教程,带你梳理Spring Boot 技术体系。 文末有彩蛋~ Spring Boot2教程 在Spring Boot项目中,正常来说是不存在XML配置,这是因为Spring Boot不推荐使用 XML ,注意,并非不支持,Spring Boot 推荐开发者使用 Java 配置来搭建框架,Spring Boot 中,大量的自动化配置都是通过 Java 配置来实现的,这一套实现方案

CSDN慕舲的黑夜-必问 抨击@民意 [导读]1.必问的运营模式&店大欺客@CSDN 2.必问做的手脚&必问的发展限制 3.CSDN令人意见很大的地方 4.我对CSDN的看法

天涯浪子 提交于 2020-08-18 02:08:12
这篇文章本来是面向 biwen .csdn.net(CSDN的必问gitchat)的,后来出了 "csdn慕舲的黑夜2,3...", 有" CSDN的15个bugs,必问做的手脚,gitchat前景 "等,由于博客被封等原因几经辗转,合并为一篇, 深刻分析CSDN及其产品,欢迎转发,转载,评论 [小福利#1] 如果没有cnblogs号,可以到 https://www.materialtools.com/?page=1 自取一个能用的,当然推荐注册一个,加入园子技术交流分享知识,具体可参考: https://www.cnblogs.com/dlight/p/get.html 创作不易,希望读完全文 //如果是要提问,推荐加作者QQ3461896724解决 本文 链接 https://www.cnblogs.com/dlight/p/biwen.html 注: 所有图片都可以在新标签页打开放大至原图 > 。。。。。。。。。。。。。。。。。。。。。。。 。。。。。。。。。。。。。。。。。。。。。。。 先简单介绍一下必问 //来自 https://baike.baidu.com/item/蒋涛/9905541 (蒋涛) 和 biwen.csdn.net 的截图 蒋涛 ,1997年作为" 金山词霸 "" 金山打字通 "等产品的领导开发者(你们都用过吧), 1999 年创办了号称"%1,%2

Feign接口动态追加context-path

霸气de小男生 提交于 2020-08-17 23:29:43
@FeignClient(name = "sl-main-service", path = "${server.servlet.context-path}") public interface UserFeignClient { // 读取用户信息,若不存在,则新注册 @GetMapping("/user/readUsXXXXXXyRegistration/{mobile}") User readUserXXXXXXstration(@PathVariable("mobile") String mobile); } 如代码中的【path = "${server.servlet.context-path}"】,可动态获取application.yml文件中的对应值, 这个浏览了全网几乎没看到类似答案,俺是出自@Value("${...}")的灵感,还真成了,快夸夸俺... 希望能够帮得到小伙伴儿们 来源: oschina 链接: https://my.oschina.net/u/3901290/blog/4503190

Spring Data JPA 之 一对一,一对多,多对多 关系映射

最后都变了- 提交于 2020-08-17 20:19:39
一、@OneToOne关系映射 JPA 使用@OneToOne来标注一对一的关系。 实体 People :用户。 实体 Address:家庭住址。 People 和 Address 是一对一的关系。 这里用两种方式描述 JPA 的一对一关系。 一种是通过外键的方式(一个实体通过外键关联到另一个实体的主键); 另外一种是通过一张关联表来保存两个实体一对一的关系。 1、通过外键的方式 people 表(id,name,sex,birthday,address_id) address 表(id,phone,zipcode,address) People.java @Entity public class People { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) @Column(name = "id", nullable = false) private Long id; //id @Column(name = "name", nullable = true, length = 20) private String name; //姓名 @Column(name = "sex", nullable = true, length = 1) private String sex; //性别 @Column(name =

CSDN慕舲的黑夜-必问 抨击@民意 [导读]1.必问的运营模式&店大欺客@CSDN 2.必问做的手脚&必问的发展限制 3.CSDN令人意见很大的地方 4.我对CSDN的看法

我们两清 提交于 2020-08-17 19:16:30
这篇文章本来是面向 biwen .csdn.net(CSDN的必问gitchat)的,后来出了 "csdn慕舲的黑夜2,3...", 有" CSDN的15个bugs,必问做的手脚,gitchat前景 "等,由于博客被封等原因几经辗转,合并为一篇, 深刻分析CSDN及其产品,欢迎转发,转载,评论 [小福利#1] 如果没有cnblogs号,可以到 https://www.materialtools.com/?page=1 自取一个能用的,当然推荐注册一个,加入园子技术交流分享知识,具体可参考: https://www.cnblogs.com/dlight/p/get.html 创作不易,希望读完全文 //如果是要提问,推荐加作者QQ3461896724解决 本文 链接 https://www.cnblogs.com/dlight/p/biwen.html 注: 所有图片都可以在新标签页打开放大至原图 > 。。。。。。。。。。。。。。。。。。。。。。。 。。。。。。。。。。。。。。。。。。。。。。。 先简单介绍一下必问 //来自 https://baike.baidu.com/item/蒋涛/9905541 (蒋涛) 和 biwen.csdn.net 的截图 蒋涛 ,1997年作为" 金山词霸 "" 金山打字通 "等产品的领导开发者(你们都用过吧), 1999 年创办了号称"%1,%2

Github点赞接近 100k 的Spring Boot学习教程+实战项目推荐!

谁都会走 提交于 2020-08-17 19:06:36
本文已经收录进: awesome-java (Github 上非常棒的 Java 开源项目集合) 很明显的一个现象,除了一些老项目,现在 Java 后端项目基本都是基于 Spring Boot 进行开发,毕竟它这么好用以及天然微服务友好。不夸张的说, Spring Boot 是 Java 后端领域最最最重要的技术之一,熟练掌握它对于 Java 程序员至关重要。 这篇文章我会推荐一些优质的 Spring Boot 开源教程 和 Spring Boot 实战项目 ,帮助大家深入学习 Spring Boot。项目质量的话,大家可以放心。 不会 Spring Boot 或者想要深入学习 Spring Boot 的小伙伴直接学起来好吧!(🙅🏻‍♂️ 不需要 Spring 基础也可以直接学 Spring Boot,Java 基础和 MySQL 会了就可以直接上手学起来! ) 另外,这些项目 Guide 是根据下面三个标准选出: 项目是否还在继续维护更新,维护更新的频率如何。 项目的质量如何,这一点可以从 star、issue 以及 pr 的数量侧面反映出来。 代码质量如何,是否是僵尸项目。关于代码质量,这里说明一点,我最反感别人无脑 diss 开源项目代码质量差了,你又能耐的话自己写一个。确实,每一个开源项目都有很多可以优化的地方,这点无法否认。 Spring Boot 教程推荐

SpringMVC中实现文件上传下载的三种解决方案(推荐)

淺唱寂寞╮ 提交于 2020-08-17 18:13:23
前言:因自己负责的项目(jetty内嵌启动的SpringMvc)中需要实现文件上传,而自己对java文件上传这一块未接触过,且对 Http 协议较模糊,故这次采用渐进的方式来学习文件上传的原理与实践。该博客重在实践。 一. Http协议原理简介 HTTP是一个属于应用层的面向对象的协议,由于其简捷、快速的方式,适用于分布式超媒体信息系统。它于1990年提出,经过几年的使用与发展,得到不断地完善和扩展。目前在WWW中使用的是HTTP/1.0的第六版,HTTP/1.1的规范化工作正在进行之中,而且HTTP-NG(Next Generation of HTTP)的建议已经提出。 简单来说,就是一个基于应用层的通信规范:双方要进行通信,大家都要遵守一个规范,这个规范就是HTTP协议。 1.特点: (1)支持客户/服务器模式。 (2)简单快速:客户向服务器请求服务时,只需传送请求方法和路径。请求方法常用的有GET、HEAD、POST。每种方法规定了客户与服务器联系的类型不同。由于HTTP协议简单,使得HTTP服务器的程序规模小,因而通信速度很快。 (3)灵活:HTTP允许传输任意类型的数据对象。正在传输的类型由Content-Type加以标记。 (4)无连接:无连接的含义是限制每次连接只处理一个请求。服务器处理完客户的请求,并收到客户的应答后,即断开连接。采用这种方式可以节省传输时间。 (5

SpringMVC+ZTree实现树形菜单权限配置

只谈情不闲聊 提交于 2020-08-17 17:32:29
计划在开源项目里加入权限配置的功能,打算加入zTree实现树形结构。 Team的Github开源项目链接: https://github.com/u014427391/jeeplatform 欢迎star(收藏) zTree 是一个依靠 jQuery 实现的多功能 “树插件”。优异的性能、灵活的配置、多种功能的组合是 zTree 最大优点。 zTree下载链接: http://www.treejs.cn/v3/main.php#_zTreeInfo 角色信息实体类: package org.muses.jeeplatform.core.entity.admin; import javax.persistence.*; import java.io.Serializable; import java.util.HashSet; import java.util.Set; /** * @description 角色信息实体类 * @author Nicky * @date 2017年3月16日 */ @Table(name="sys_role") @Entity public class Role implements Serializable{ /** 角色Id**/ private int roleId; /** 角色描述**/ private String roleDesc; /

浅析 VO、DTO、DO、PO 的概念、区别和用处!

此生再无相见时 提交于 2020-08-17 17:25:17
云栖号资讯:【 点击查看更多行业资讯 】 在这里您可以找到不同行业的第一手的上云资讯,还在等什么,快来! 本篇文章主要讨论一下我们经常会用到的一些对象:VO、DTO、DO和PO。由于不同的项目和开发人员有不同的命名习惯,这里我首先对上述的概念进行一个简单描述,名字只是个标识,我们重点关注其概念: 概念: VO(View Object):视图对象,用于展示层,它的作用是把某个指定页面(或组件)的所有数据封装起来。 DTO(Data Transfer Object):数据传输对象,这个概念来源于J2EE的设计模式,原来的目的是为了EJB的分布式应用提供粗粒度的数据实体,以减少分布式调用的次数,从而提高分布式调用的性能和降低网络负载,但在这里,我泛指用于展示层与服务层之间的数据传输对象。 DO(Domain Object):领域对象,就是从现实世界中抽象出来的有形或无形的业务实体。 PO(Persistent Object):持久化对象,它跟持久层(通常是关系型数据库)的数据结构形成一一对应的映射关系,如果持久层是关系型数据库,那么,数据表中的每个字段(或若干个)就对应PO的一个(或若干个)属性。 模型: 下面以一个时序图建立简单模型来描述上述对象在三层架构应用中的位置 用户发出请求(可能是填写表单),表单的数据在展示层被匹配为VO。 展示层把VO转换为服务层对应方法所要求的DTO

深入理解JVM(③)虚拟机的类加载过程

倾然丶 夕夏残阳落幕 提交于 2020-08-17 17:01:04
前言 上一篇我们介绍到一个类的生命周期大概分7个阶段:加载、验证、准备、解析、初始化、使用、卸载。并且也介绍了类的加载时机,下面我们将介绍一下虚拟机中类的加载的全过程。 主要是类生命周期的,加载、验证、准备、解析和初始化这五个阶段所执行的具体动作。 加载 类加载过程的第一个阶段就是加载,在加载阶段,Java虚拟机需要完成以下三件事情: 1. 通过一个类的全限定名来获取定义此类的二进制字节流。 2. 将这个字节流所代表的静态存储结构转化为方法区的运行时数据结构。 3. 在内存中生成一个代表这个类的java.lang.Class对象,作为方法区这个类的各种数据的访问入口。 《Java虚拟机规范》对这三点要求其实并不是特别具体,这样留给虚拟机实现和Java应用的灵活度都是相当大的。仅第一条,获取二进制字节流,并没有有指出从哪里获取,如何获取。这样就已经能被我们的Java开发人员玩出各种花样了。 例如: 从ZIP包中读取(JAR、EAR、WAR)。 从网络中获取(Web Applet)。 运行时计算生成,最典型的就是动态代理技术,在 java.lang.reflect.Proxy 中,就是用了 ProxyGenerator.generateProxyClass() 来为特定接口生成形式为“ $Proxy ”的代理类的二进制字节流。 由其他文件生成(JSP)。 从数据库中读取。