一、一开始下了一本PDF书,影印版,看一般的字还是看的清,但是看到代码部分的话,还是会有模糊,尤其是一些配置的时候,后来是在不行就去网上搜了一下,找到一个网易云阅读上有网页版的《JavaEE开发的颠覆者 Spring Boot实战》,刚想感谢网易爸爸,才发现他不能选中,但还是将就着用了一会儿,毕竟比影印版清晰多了。然而,一个偶然的机会,发现这个网易右键没反应,有问题,按个"F12"试试,于是就找到了在HTML代码里的代码块,PS:有空我想试试爬虫。

二、在书的 4.2.2 里有一个样例,写一个最简单的 spring-mvc 的例子,然后,我就为此付出了2天的时间。注释虽是大势所趋,但好像没有 ".xml"入手来的简单。

① 在项目创建后 需要在 "File -> Setting -> Modules ->Dependencies" 中,加入 Tomcat 依赖

②在 "File -> Setting -> Artifacts"  添加 Web Applaction: Exploded 。

③在 "Run" 的时候,也要先配置 Tomcat 服务器。

以上三条具体可见 IntelliJ IDEA 15 部署Tomcat及创建一个简单的Web工程

④用 IDEA 配置的 Tomcat 访问时 ,不要加 项目名!!!!!!!!!!!!!!!

直接 "http://localhost:8080/index" 干干净净的。

最后  "Welcome to Spring MVC world"。

三、在书的4.5章,需要引用 jquery.js, 一直失败,最后发现 书中js代码引用js这边用的是

<script data-src="assets/js/jquery.js" type="text/javascript"></script>

搜了一下,<script>标签没有"data-src"属性,改为

<script src="assets/js/jquery.js" type="text/javascript"></script>

一开始没注意到这点,于是,尝试了别的方法,

1、直接引用 jquery.js

<script src="http://ajax.googleapis.com/ajax/libs/jquery/3.1.1.0/jquery.min.js"></script>

2、maven引入 jquery.js的依赖, 详见  深入 Spring 系列之静态资源处理

四、在书的6.5.1章里,@ConfigurationProperties注释的 locations 属性来指定properties文件的位置,源码:

@ConfigurationProperties(prefix = "author",locations = {"classpath:config/author.properties"})

但是这个在 spring boot 1.5以上版本被取消了,解决方法:spring boot1.5以上版本@ConfigurationProperties取消location注解后的替代方案

( 这里因为没有保存,可能有遗漏 )

五、在书的6.5.5章里,在pom.xml中添加spring-boot-starter-hello的依赖,找不到这个依赖,

解决方法,spring-boot-starter-hello项目没有 install   (之前是我用了两个maven,好像也不对)

六、在书的7.1章里我要在一个已经生成的spring-boot项目中添加 dependencties ,不知道怎么描述这个问题。

新建了项目后,发现也就 pom.xml 里多了对 Thymeleaf 的依赖支持,直接加就好

七、在书的7章里,大量用到 data-* ,滥用,删了,all is well。

八、可能觉得这个有点用,

九、在书的7.4.2章里,ConfigurableEmbeddedServletContainer接口,已经弃用,用TomcatServletWebServerFactory替代

为了实现这个,也算是融汇贯通吧:

1、添加404.html

2、在 DemoApplication 中添加 TomcatServletWebServerFactory

@Beanpublic ServletWebServerFactory servletContainer() {TomcatServletWebServerFactory tomcat = new TomcatServletWebServerFactory();tomcat.setPort(8888);tomcat.addErrorPages(new ErrorPage(HttpStatus.NOT_FOUND,"/404"));return tomcat;}

3、新建controller

package com.learn.demo;import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;@Controller
public class DemoController {@RequestMapping(value =  "/404")//9public  String hello(){return "404"; //3}}

OK,404 FIND

十、在书的7.6.3章中,对Spring Security的使用,照搬书中的方法写,没有报错,但登陆的时候,会发现它在输入错误的账号密码无后,可以跳出正常的错误提示,但输入预设的后无法跳转到"chat.html"页面,而是返回"login.html"页面。

仔细查看代码后发现

就这里有点看着像有问题,直接输入网址,发现

我就觉得可能是版本更新后弃用,于是搜版本,Spring Security已经更新到 5.0,于是将其代码改为

<html  xmlns:th="http://www.thymeleaf.org"xmlns:sec="http://www.thymeleaf.org/thymeleaf-extras-springsecurity5">

虽然在IDE中还是不识别,但是还是尝试着开了一下,然后突然在 console 中发现有错误信息

java.lang.IllegalArgumentException: There is no PasswordEncoder mapped for the id "null"

试着搜了一下这个错误,发现,还是个版本问题,spring security 5.0中新增了多种加密方式,也改变了密码的格式。

照着其中一个帖子改了一下 configure(AuthenticationManagerBuilder auth){}方法,将

@Overrideprotected void configure(AuthenticationManagerBuilder auth) throws Exception {auth.inMemoryAuthentication().withUser("wyf").password("123456").roles("USER").and().withUser("wisely").password("123456").roles("USER");}

改为:

@Overrideprotected void configure(AuthenticationManagerBuilder auth) throws Exception {auth.inMemoryAuthentication().withUser("wyf").password(new BCryptPasswordEncoder().encode("123456")).roles("USER").and().withUser("wisely").password(new BCryptPasswordEncoder().encode("123456")).roles("USER");}

还是报错,后来参考了另一个帖子,再改为:

@Overrideprotected void configure(AuthenticationManagerBuilder auth) throws Exception {auth.inMemoryAuthentication().withUser("wyf").password("{noop}123456").roles("USER").and().withUser("wisely").password("{noop}123456").roles("USER");}

加了"{noop}"注释,终于可以正常运行。

(PS1:第二种方式应该是最为合理的做法,但是不知道哪里出错了,有空细究)

(PS2: 通过修改configure(HttpSecurity http) 来让 spring security 只拦截/chat ,方便访问别的网址)

那些在《JavaEE开发的颠覆者 Spring Boot实战》中遇到的坑,,。(一)相关推荐

  1. 《JavaEE开发的颠覆者: Spring Boot实战》资源及勘误

    感谢大家对<JavaEE开发的颠覆者: Spring Boot实战>的支持,您可以在如下地址购买: 京东地址:http://item.jd.com/11894632.html 当当地址:h ...

  2. JavaEE开发的颠覆者 Spring Boot实战

    网站 更多书籍点击进入>> CiCi岛 下载 电子版仅供预览及学习交流使用,下载后请24小时内删除,支持正版,喜欢的请购买正版书籍 电子书下载(皮皮云盘-点击"普通下载" ...

  3. JavaEE开发的颠覆者 Spring Boot实战 学习总结一

    开始对这本Spring Boot的书进行学习,算是对Java技术的javaee部分开始学习,这部分算是实战的东西. Spring的发展:xml配置–注解配置–Java配置(本书的使用) Spring: ...

  4. 那些在《JavaEE开发的颠覆者 Spring Boot实战》中遇到的坑,,。(二)

    一.配环境真是个头疼的事, 前记:Boot2Docker 是个过时的东西,但是我不知道为什么这次就不想用最新的了,付出惨重代价,所有问题找到的解决方法什么的,都是Docker的. 接下来简单说一下 B ...

  5. 学习一下《JavaEE开发的颠覆者 Spring Boot实战 》

    SPRING,绕不过去的.

  6. 《JavaEE开发的颠覆者——Spring Boot实战》是一本好书

    这本书的风格非常好.每一节都是先点明这一块知识的要点,随后就手把手的做出一个最简明.但有能体现核心的实例(大多只有几个Class) 这样的书用来熟悉一门框架,实在是再好不过. 转载于:https:// ...

  7. 读《Java EE 开发的颠覆者 Spring Boot 实战》

    由于还书的时间要到了.没办法读这个书了. 只能简单的翻翻 这是本很厚的书,看目录很细. 从 spring 开始讲,到 spirng boot .

  8. 在Spring Boot 应用中使用JSP开发网页

    本文在上一文<在Eclipse下使用Maven开发Spring Boot应用>基础上使用JSP开发网页. 1.介绍 web开发是开发中至关重要的一部分,Web开发的核心内容主要包括内嵌Se ...

  9. 精通spring——深入java ee开发核心技术 pdf_2019精通Spring Boot 42讲 高清pdf完整版

    <精通springboot42讲价值99元入门到实教程>2019年最新spring boot教程,共计42讲从入门到精通,真正的实战教程. 课程内容和技术栈都会使⽤最新稳定版本,课程数量也 ...

最新文章

  1. 开发腾讯移动游戏平台SDK ios版Ane扩展 总结
  2. OSMboxPost()
  3. 【网络安全】HTB靶机渗透系列之Sniper
  4. 利用 Arthas 精准定位 Java 应用 CPU 负载过高问题
  5. python画卡通人物用什么_干啥啥不行,吹牛第一名——Python头像动漫化,快来用女朋友照片生成一个动漫头像吧...
  6. 搜索引擎设计实用教程(1)-以百度为例
  7. 拥抱.NET Core系列:MemoryCache 缓存域
  8. Linux 命令之 gunzip -- 用来解压缩文件
  9. LDMS 8.8 简明使用手册之客户端配置及部署
  10. php screw.so扩展下载,CentOS下安装php加解密工具php
  11. UnityShader32:PBR(一)
  12. RocketMQ如何保证消息的可靠性?
  13. Android个人日记本开发背景,毕业设计(论文)-手机app移动开发论文个人心情日记本的设计实现 .doc...
  14. Struts框架实战精讲 struts1(5)- 动态ActionForm
  15. 剑指offer之编程是一种习惯
  16. 新网站如何让百度快速收录,百度快速收录详细操作教程
  17. 物联网Wi-Fi,SIP 时代即将来临
  18. 网络营销与推广手法探秘
  19. Veins/OMNeT/SUMO:SUMO坐标转Veins项目地图中的坐标
  20. QQ 浏览器(iOS版)崩溃信息研究

热门文章

  1. 纪念特洛伊英雄 Sinon - SAP UI5 Mock Server 使用步骤和工作原理介绍
  2. 电路考点之电流和电压参考方向的设定
  3. RLC元件上电压,电流关系
  4. 【洛谷】P1008 三连击
  5. StarUML 3 中文文档 包图
  6. iPhone无法连接Wi-Fi解决方法
  7. 微博html5版打不开,PC端网页版微博就是打不开是什么问题啊!缓 – 手机爱问
  8. 架构师技能5:如何做code review 代码简洁之道
  9. 实现正负值及多条Y轴 Echarts柱状图
  10. 让你的代码减少90%,这些Java工具库太强大了!