SpringBoot学习笔记
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
10分钟创建一个SB应用:
1.创建项目
2将springboot的版本改为1.5.6(不修改后面操作数据库会报类找不到)
3.pom.xml中配置3个数据库相关的内容
4.在入口文件增加注解(不注解会导致mapper识别不到):
@MapperScan("com.example.demo.mapper")
5.创建generator/generatorConfig.xml文件,并修改数据库账号密码、包名、表名
6.修改application.yml,增加数据源相关的配置
7.创建一个maven的Run配置,设置mybatis-generator:generate -e
8.编写Service接口和Service实现类
9.编写Controller和方法
10.启动应用
创建项目
https:///lom9357bye/article/details/69677120
通过tomcat部署项目
https:///PJH-Forever/p/8026330.html
spring boot configuration annotation proessor not found in classpath
引入如下依赖:
pom.xml中的parent
只有parent设置了,后面的才不用写version;没有在parent中设置的,后面必须写version,否则只会下载一个unknown的错误包
一些tips:
spring boot 2.0相比1.5.x,变更比较大,一些类去除了,因此要注意不同版本的api
如果在generatorConfig.xml中配置了某个表,但是没有用到,那么程序起来的时候会报错;删除即可
Durid包含的主要功能:
1)使用StaFilter插件进行监控数据库访问性能
2)替换DBCP和C3P0,提供一个高效、可扩展的数据库连接池
3)支持数据库密码的加密
4)SQL执行日志
5)提供了一个监控页面,可以查看sql情况
控制器中通过@RequestBody获取POST参数报错:
{"timestamp":1527154727083,"status":415,"error":"Unsupported Media Type","exception":"org.springframework.web.HttpMediaTypeNotSupportedException","message": "Content type 'application/json;charset=UTF-8' not supported","path":"/recomd/add"}
经过排查,发现是参数中的类Recommend里面,有2个setIndexList()方法:setIndexList(List xxx);
setIndexList(ArrayList xxx);
删除一个就正常了,猜测是RequestBody在组装Recommend这个参数类的时候,无法判断该用哪一个set方法,从而报错了
这应该算是框架的一个bug了
Field userMapper in erServiceImpl required a bean of type 'erMapper' that could not be found.
原因是在入口文件
XxxApplication中,少加了一个注解:
@MapperScan("com.zhouchangju.mapper")
将项目启动方式从XxxApplication改为Artifact后,访问页面都是404
1.没有将pom.xml里面的启动方式从jar改为war
2.XxxApplication类没有继承自SpringBootServletInitializer类
extends SpringBootServletInitializer
安全插件配置url的时候,不用加artifactid
比如项目叫做daily,我设置antMatchers的时候,不用加daily这一截:
/**定义安全策略*/
@Override
protected void configure(HttpSecurity http) throws Exception {
//配置安全策略
http.authorizeRequests()
//定义/请求不需要验证
.antMatchers("/","/**/*.css","/**/*.js","/**/*.jpg","/**/*.png","/**/*.jpeg",
"/user/getdynamicpassword","/user/login","/login.html").permitAll()
.anyRequest().authenticated()//其余的所有请求都需要验证
.and()
.logout()
.permitAll()//定义logout不需要验证
.and()
.formLogin()//使用form表单登录
.loginPage("/login.html")
.failureUrl("/login?error=true");
}
本地开发时,Security验证的接口,总是报403
需要在SecurityConfig中关闭csrf:
.csrf().disable()
Edit Configration时,没有Tomcat Server
settings->Build,Execution,Deploment->右侧ApplicationServer->添加本地tomcat信息
误删了项目模块文件xxx.iml怎么办?
可以在Project Structure里面的module里面,重新导入模块,注意每一步都是import,不是create
KafkaConsumer is not safe for multi-threaded access
配置文件中的属性无法加载: require a bean of type ng.String that could not be found 是因为写了一个带有String参数的构造函数导致的,删除构造函数即可解决,详见:https:///questions/40670099/im-not-including-the-java-lang-string-bean maven编译项目,报错:cannot find symbol
原因是svn上面代码不全,缺少了一些文件
如何修改打包后的war文件的存放位置?
由于maven遵循“约定优先于配置”的思想,所以如果不做特殊配置,它默认是把打包之后产生的文件都放在target目录下的。要想改变此默认行为,我们修改在项目中的pom.xml文件。在此项目中,添加如下配置: