当前位置:文档之家› SpringBoot学习笔记

SpringBoot学习笔记

10分钟创建一个SB应用:1.创建项目2将springboot的版本改为1.5.6(不修改后面操作数据库会报类找不到)<version>1.5.6.RELEASE</version>3.pom.xml中配置3个数据库相关的内容4.在入口文件增加注解(不注解会导致mapper识别不到):@MapperScan("com.example.demo.mapper")5.创建generator/generatorConfig.xml文件,并修改数据库账号密码、包名、表名6.修改application.yml,增加数据源相关的配置7.创建一个maven的Run配置,设置mybatis-generator:generate -e8.编写Service接口和Service实现类9.编写Controller和方法10.启动应用创建项目https:///lom9357bye/article/details/69677120通过tomcat部署项目https:///PJH-Forever/p/8026330.htmlspring boot configuration annotation proessor not found in classpath引入如下依赖:<dependency><groupId> org.springframework.boot </groupId><artifactId> spring-boot-configuration-processor </artifactId><optional> true </optional></dependency>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后,访问页面都是4041.没有将pom.xml里面的启动方式从jar改为war2.XxxApplication类没有继承自SpringBootServletInitializer类extends SpringBootServletInitializer安全插件配置url的时候,不用加artifactid比如项目叫做daily,我设置antMatchers的时候,不用加daily这一截:/**定义安全策略*/@Overrideprotected 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 Serversettings->Build,Execution,Deploment->右侧ApplicationServer->添加本地tomcat信息误删了项目模块文件xxx.iml怎么办?可以在Project Structure里面的module里面,重新导入模块,注意每一步都是import,不是createKafkaConsumer 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文件。

在此项目中,添加如下配置:<build><plugins><!-- 更改maven默认的打包目录 --><plugin><artifactId>maven-war-plugin</artifactId><configuration><webappDirectory>${basedir}/src/main/webapp</webappDirectory><warSourceDirectory>${basedir}/src/main/webapp</warSourceDirectory></configuration></plugin></plugins></build>查看maven的配置文件路径mvn -X内网4.62构建maven编译环境遇到的问题虽然配置了aliyun的源,但是某些源的依赖里面,注明了要从中央仓库取依赖包,比如spring-boot-maven-plugin遇到这种情况,只能手动下载好这些包,然后上传到4.62的本地仓库里面去,记得删除repositories文件maven编译项目报错:No compiler is provided in this environment. Perhaps you are running on a JRE rather than a JDK?1.java的环境变量配置有误2.环境变量配置后,在之前打开的窗口中执行命令,导致javac识别不到(在之前的窗口source /etc/profile一下就行了)调用mapper类的方法,提示:org.apache.ibatis.binding.BindingException: Invalid bound statement (not found)application.yml里面缺少数据池相关的配置:mybatis:mapper-locations: classpath:mapping/*.xmltype-aliases-package: com.example.demo.model操作数据库时,Mapper对象报空指针异常application.yml里面缺少数据池相关的配置注意,用了dataSource后,是先初始化数据源,然后应用程序从数据库连接池里面获取数据库连接来操作DB,这个设计要理解才行idea打的jar包,运行提示“没有主清单属性的解决”https:///u011624972/article/details/58591825idea打的jar包,运行提示“错误: 找不到或无法加载主类mine.QrApplication”springboot代码中的相对路径是以项目根目录为准的比如infomine这个项目,./data对应的是infomine/data目录。

相关主题