Spring Boot

新里程牌!阿里内部自爆SpringSecurity笔记,惊呆

隐身守侯 提交于 2020-11-15 11:12:36
现在“打工人、打工魂、打工都是人上人......”,好像被洗脑了一样,我们都一样都是搬砖人,那么,搬砖是否就不值得一提呢?搬砖是不是就不会.......哈哈停止你的想法,该学习还是要学习,该跳槽还是要跳槽,公司在不断地更新,那么, 作为一名程序员,是不是更要更新和升级自己的技术栈,只有系统地学习新的知识,才不会被淘汰,那么你对SpringSecurity了解多少呢? SpringSecurity是一个强大且高度可定制的安全框架,致力于为Java应用提供身份认证和授权。 Spring Security 是一个能够为基于 Spring 的企业应用系统提供声明式的安全访问控制解决方案的安全框架。它提供了一组可以在 Spring 应用上下文中配置的 Bean,充分利用了 Spring IoC(Inversion of Control 控制反转),DI(Dependency Injection 依赖注入)和 AOP(面向切面编程)功能,为应用系统提供声明式的安全访问控制功能,减少了为企业系统安全控制编写大量重复代码的工作。 下文内容主要是写这份《SpringSecurity成长笔记》的主要提纲内容,提纲内容包括学习目录+实战文档+面试礼包,需要下载完成版的朋友,可以文末扫码即可~ SpringSecurity成长笔记一 学习目录展示 源码分析 记住我功能原理分析 授权准备工作 动态展示菜单

500道高频面试+4套Github商城项目教程(源码+视频)

孤人 提交于 2020-11-15 06:28:03
最近很多粉丝问我有没有最新的面试题?于是,我就把我见过的以及遇到过的,还有根据读者反馈的大厂面试真题,进行了汇总整理。 于是就有了这份 《Java大厂面试题合集》, 并且按照细分了41个方向。 题库非常全面 包括Java基础、Java异常、Spring、SpirngMVC、MyBatis、SpringBoot、SpringCloud、BIO、NIO、AIO、Netty、Tomcat、Redis、MySQL、Memcache、ElasticSearch、zookeeper、RabbitMQ、Vue、Dubbo、并发编程、Java虚拟机、TCP、Http、大数据、设计模式、Linux等 面试题,如何获取? 关注我添加助理VX:MXW5308 即可免费获取 另外,我还给大家准备了5个Java实战项目 现在这个时代,没有微服务、分布式的项目经验真的有点难了,其次在项目中用到的中间接比如Redis、MQ、Nginx、solr、ElasticSearch、Docker、Dubbo、Kafka、ShardingSphere等等。 项目分别是: 青橙商城完整版 后台+前台+青橙秒杀 Java大型电商系统谷粒商城项目开发实践 淘淘商城(分布式基于SSM) 大型微服务项目十次方 【乐优商城】项目(SpringBoot、SpringCloud、Vue) 部分截图 关注我添加助理VX:MXW5308

公司不用 Spring Boot,果断离职了!

一曲冷凌霜 提交于 2020-11-15 05:01:49
面试问到离职原因,我想这是很多面试者的痛,包括我自己,曾经也被离职原因所坑过。 面试回答离职原因简直特么就是巨坑,我也因此在微信公众号 “Java技术栈” 写了这篇文章《 过了所有技术面,却倒在 HR 一个问题上。。 》,希望可以给职场小白一点点经验,少走弯路。 话说最近栈长面试了个两三年的 Java 开发程序员,离职原因说出来就是砸自己的脚,真是感慨万千啊,且听我慢慢道来。 我让他做个简单的自我介绍,叽里咕噜一大堆,持续好些分钟,我实在没耐心听下去了,但也不好强行打断,中间趁他换气还是插了句话让他停止自我介绍了。 从头到尾表现出一股很强烈的学习欲望,说他很爱好学习,平时还自建 Demo 学习 Spring Boot、Spring Cloud 相关技术什么的。然而,当我问到一些相关的知识点时,又吱吱唔唔了。 最有意思的是,居然主动说了离职原因,他说公司项目没用 Spring Boot,他觉得 Spring Boot 又是最主流的技术,果断离职出来找个用这个技术的公司学习一下。 最后的面试结果就是等通知了,不懂其背后的演义的的可以阅读微信公众号 “Java技术栈” 此文第1点: 为什么面试完,总是让你回去等通知? 这离职原因说出来让我有点想笑,站在面试官的角度,他表现的非常热爱技术和强烈的学习欲望是好事,但确实是好事吗?就因为公司没用 Spring Boot 就要离职么

SpringBoot进阶

吃可爱长大的小学妹 提交于 2020-11-15 04:47:10
慕课网链接 表单数据的验证 在pojo类属性的上面添加注解 @Entity public class Girl { @Id @GeneratedValue private Integer id; @NotBlank(message = "这个字段必传") private String cupSize; @Min(value = 18, message = "未成年少女禁止入门") // @NotNull // @Max() // @Length() private Integer age; } 校验使用(使用@valid来验证) @PostMapping(value = "/girls") public Result girlAdd(@Valid Girl girl, BindingResult bindingResult) { //使用BindingResult对象输出校验对象的出错信息 if (bindingResult.hasErrors()) { return ResultUtil.error(1, bindingResult.getFieldError().getDefaultMessage()); } girl.setCupSize(girl.getCupSize()); girl.setAge(girl.getAge()); return ResultUtil

mysql错误:java.sql.SQLException: The server time zone value '�й���׼ʱ��' is unrecognized or ...

让人想犯罪 __ 提交于 2020-11-15 00:21:26
java.sql.SQLException: The server time zone value '�й���׼ʱ��' is unrecognized or represents more than one time zone. You must configure either the server or JDBC driver (via the 'serverTimezone' configuration property) to use a more specifc time zone value if you want to utilize time zone support. 这是SpringBoot整合MySQL的依赖包版本过高,在高版本的MySQL依赖中数据库和系统时区差异所造成的。系统为SQL默认美国时间,而我们中国要比他们迟8小时,因此将时区设置为当前系统时区即可,采用+8:00格式 两种解决方案 1.降低 mysql-connector-java依赖版本 (使用5.1.x版本即可) <dependency>   <groupId>mysql</groupId>   <artifactId>mysql-connector-java</artifactId>   <version>5.1.35</version> </dependency> 2

Spring Boot实战:静态资源处理

这一生的挚爱 提交于 2020-11-14 10:37:50
  前两章我们分享了Spring boot对Restful 的支持,不过Restful的接口通常仅仅返回数据。而做web开发的时候,我们往往会有很多静态资源,如html、图片、css等。那如何向前端返回静态资源呢?以前做过web开发的同学应该知道,我们以前创建的web工程下面会有一个webapp的目录,我们只要把静态资源放在该目录下就可以直接访问。但是,基于Spring boot的工程并没有这个目录,那我们应该怎么处理? 一、最笨的方式   我们首先来分享一种最笨的办法,就是将静态资源通过流直接返回给前端,我们在maven工程的resources的根目录下建立一个html的目录,然后我们把html文件放在该目录下,并且规定任何访问路径以/static/开头的即访问该目录下的静态资源,其实现如下: @Controller public class StaticResourceController { @RequestMapping("/static/**") public void getHtml(HttpServletRequest request, HttpServletResponse response) { String uri = request.getRequestURI(); String[] arr = uri.split("static/"); String

Springboot 自动配置浅析

独自空忆成欢 提交于 2020-11-14 08:59:10
Introduction 我们知道,SpringBoot之所以强大,就是因为他提供了各种默认的配置,可以让我们在集成各个组件的时候从各种各样的配置文件中解放出来。 拿一个最普通的 web 项目举例。我们需要使用 servlet 容器,SpringBoot 就提供了嵌入式的 Tomcat 作为默认容器,不需要一行配置就能直接以最普通的 Java 程序的方式启动: java -jar ;接收请求需要一个网络端口,默认配置好 8080 ;处理请求需要 servlet 的多线程特性,默认配置好了最大线程数为 200 ;处理好的请求以 Restful 风格返回给调用方,SpringBoot 默认配置好了 jackson 进行 json 序列化,业务代码需要做的只是返回一个 POJO 对象;连接池直接就默认配置了性能最好的的 Hikari ,以及连接池的默认尺寸为10……在一个简单的web应用中,这些配置我们甚至都可能不了解或者没有意识到它们的存在,就可以让程序正常运行。 这就是自动配置的魔力——润物细无声。 那么自动配置是怎么实现的呢?本文就从 POM 文件和 @SpringBootApplication 注解来简单分析一下自动配置原理。 真的只是 简单地 ,分析一下。 POM文件 环境 SpringBoot 2.0.6 父项目 在每一个 SpringBoot 项目一开始的 POM 文件中

Eureka停更了?试试Zookpper和Consul

…衆ロ難τιáo~ 提交于 2020-11-14 07:01:19
在Spring Cloud Netflix中使用Eureak作为注册中心,但是Eureka2.0停止更新,Eureka1.0 进入了维护状态。就像win7一样,同样可以用,但是官方对于新出现的问题并不能及时修复,所以我们就需要使用替代品。目前可用的注册中心替代品主要有:Zookeeper、Consul、Nacos等,这里主要讲前两个,Nacos是Spring Cloud Alilibaba中的组件,后期会说到。 使用Zookeeper作为注册中心 一、安装Zookeeper并启动服务 ​ 这一步非本文重点,请自行百度,很简单的 二、将原有的微服务注册进Zookeeper 使用过Dubbo的小伙伴对Zookeeper一定不陌生。使用Eureka时,我们是创建一个新的SpringBoot Web项目(如果是Eureka集群的话,就要创建多个项目),然后将其他微服务注册进去,而Zookeeper却不用新建项目,只需要通过修改配置和简单的编码就可以进行注册 为了和之前的项目冲突,我们先将之前的项目复制两个新的项目 zookeeper-provider-8001 和 zookeeper-consumer-80 先修改 zookeeper-provider-8001 这个提供者项目 在pom.xml中引入依赖 <dependency> <groupId>org.springframework

对象级别锁 vs 类级别锁(Java)

馋奶兔 提交于 2020-11-14 06:27:25
前言 对于多线程(并发)和Spring Boot这两块在同步进行学习中,在看到使用synchronized关键字使操作同步时,看到和C#中不一样的东西,所以这里呢,就深入学习了下,若有错误之处,还望指正。 对象级别锁 vs 类级别锁 我们知道由于并发会导致线程不安全的问题,此时我们手段之一采取线程同步,也就是说使得所有并发线程在执行中保持同步的过程,当方法声明为同步时,传递到同步块中的对象称之为监视器或锁定对象,如果有另外一个线程也在执行该同步方法,那么该线程将被阻塞,直到线程释放该监视器或锁定对象。我们 在类中已定义的方法或块上使用synchronized关键字,同时synchronized 关键字不能与类定义中的变量或属性一起使用。 对象级别锁 所谓的对象级别锁,也就是针对非静态方法执行同步块锁定,那么同步块中的监视器或锁定对象则是基于对象实例,有如下三种形式 class Test { public synchronized void LockMethod() { } } 或者 class Test { public void LockMethod() { synchronized ( this ) { } } } 或者 class Test { private final Object lock = new Object(); public void LockMethod()