那些在《JavaEE开发的颠覆者 Spring Boot实战》中遇到的坑,,。(一)
一、一开始下了一本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实战》中遇到的坑,,。(一)相关推荐
- 《JavaEE开发的颠覆者: Spring Boot实战》资源及勘误
感谢大家对<JavaEE开发的颠覆者: Spring Boot实战>的支持,您可以在如下地址购买: 京东地址:http://item.jd.com/11894632.html 当当地址:h ...
- JavaEE开发的颠覆者 Spring Boot实战
网站 更多书籍点击进入>> CiCi岛 下载 电子版仅供预览及学习交流使用,下载后请24小时内删除,支持正版,喜欢的请购买正版书籍 电子书下载(皮皮云盘-点击"普通下载" ...
- JavaEE开发的颠覆者 Spring Boot实战 学习总结一
开始对这本Spring Boot的书进行学习,算是对Java技术的javaee部分开始学习,这部分算是实战的东西. Spring的发展:xml配置–注解配置–Java配置(本书的使用) Spring: ...
- 那些在《JavaEE开发的颠覆者 Spring Boot实战》中遇到的坑,,。(二)
一.配环境真是个头疼的事, 前记:Boot2Docker 是个过时的东西,但是我不知道为什么这次就不想用最新的了,付出惨重代价,所有问题找到的解决方法什么的,都是Docker的. 接下来简单说一下 B ...
- 学习一下《JavaEE开发的颠覆者 Spring Boot实战 》
SPRING,绕不过去的.
- 《JavaEE开发的颠覆者——Spring Boot实战》是一本好书
这本书的风格非常好.每一节都是先点明这一块知识的要点,随后就手把手的做出一个最简明.但有能体现核心的实例(大多只有几个Class) 这样的书用来熟悉一门框架,实在是再好不过. 转载于:https:// ...
- 读《Java EE 开发的颠覆者 Spring Boot 实战》
由于还书的时间要到了.没办法读这个书了. 只能简单的翻翻 这是本很厚的书,看目录很细. 从 spring 开始讲,到 spirng boot .
- 在Spring Boot 应用中使用JSP开发网页
本文在上一文<在Eclipse下使用Maven开发Spring Boot应用>基础上使用JSP开发网页. 1.介绍 web开发是开发中至关重要的一部分,Web开发的核心内容主要包括内嵌Se ...
- 精通spring——深入java ee开发核心技术 pdf_2019精通Spring Boot 42讲 高清pdf完整版
<精通springboot42讲价值99元入门到实教程>2019年最新spring boot教程,共计42讲从入门到精通,真正的实战教程. 课程内容和技术栈都会使⽤最新稳定版本,课程数量也 ...
最新文章
- 开发腾讯移动游戏平台SDK ios版Ane扩展 总结
- OSMboxPost()
- 【网络安全】HTB靶机渗透系列之Sniper
- 利用 Arthas 精准定位 Java 应用 CPU 负载过高问题
- python画卡通人物用什么_干啥啥不行,吹牛第一名——Python头像动漫化,快来用女朋友照片生成一个动漫头像吧...
- 搜索引擎设计实用教程(1)-以百度为例
- 拥抱.NET Core系列:MemoryCache 缓存域
- Linux 命令之 gunzip -- 用来解压缩文件
- LDMS 8.8 简明使用手册之客户端配置及部署
- php screw.so扩展下载,CentOS下安装php加解密工具php
- UnityShader32:PBR(一)
- RocketMQ如何保证消息的可靠性?
- Android个人日记本开发背景,毕业设计(论文)-手机app移动开发论文个人心情日记本的设计实现 .doc...
- Struts框架实战精讲 struts1(5)- 动态ActionForm
- 剑指offer之编程是一种习惯
- 新网站如何让百度快速收录,百度快速收录详细操作教程
- 物联网Wi-Fi,SIP 时代即将来临
- 网络营销与推广手法探秘
- Veins/OMNeT/SUMO:SUMO坐标转Veins项目地图中的坐标
- QQ 浏览器(iOS版)崩溃信息研究