SpringBoot学习笔记

合集下载

SpringBoot中必须掌握的27个注解

SpringBoot中必须掌握的27个注解

SpringBoot中必须掌握的27个注解Spring Boot方式的项目开发已经逐步成为Java应用开发领域的主流框架,它不仅可以方便地创建生产级的Spring应用程序,还能轻松地通过一些注解配置与目前比较火热的微服务框架SpringCloud集成。

而Spring Boot之所以能够轻松地实现应用的创建及与其他框架快速集成,最核心的原因就在于它极大地简化了项目的配置,最大化地实现了“约定大于配置”的原则。

然而基于Spring Boot虽然极大地方便了开发,但是也很容易让人“云里雾里”,特别是各种注解很容易让人“知其然而不知其所以然。

所以,要想用好Spring Boot就必须对其提供的各类功能注解有一个全面而清晰地认识和理解。

一方面可以提高基于Spring Boot的开发效率,另一方面也是面试中被问及框架原理时所必需要掌握的知识点。

在接下来的内容中,小编就带大家一起来探究下Spring Boot的一些常用注解吧!一、Spring相关6个基础注解Spring Boot的有些注解也需要与Spring的注解搭配使用,这里小编梳理了在项目中与Spring Boot注解配合最为紧密的6个Spring基础框架的注解。

如1、@Configuration从Spring3.0,@Configuration用于定义配置类,可替换xml配置文件,被注解的类内部包含有一个或多个被@Bean注解的方法,这些方法将会被AnnotationConfigApplicationContext或AnnotationConfigWebApplicationContext类进行扫描,并用于构建bean定义,初始化Spring容器。

2、@ComponentScan做过web开发的同学一定都有用过@Controller,@Service,@Repository注解,查看其源码你会发现,他们中有一个共同的注解@Component,没错@ComponentScan注解默认就会装配标识了@Controller,@Service,@Repository,@Component注解的类到spring容器中。

SpringBootActuator学习笔记

SpringBootActuator学习笔记

SpringBootActuator学习笔记spring boot ActuatorActuator概述Actuator指的是负责和移动装置的组件。

通过Actuator暴露的端点我们可以获取⼀个正在运⾏中的应⽤内部的状态导⼊依赖<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-actuator</artifactId></dependency>Actuator具备⼀些开箱即⽤的端⼝Endpoints id描述HTTP⽅法是否敏感信息auditevents显⽰当前应⽤程序的审计事件信息GET Yesbeans显⽰应⽤上下⽂中创建的所有Bean GET Yescaches显⽰可⽤缓存信息GET Yesconditions显⽰⾃动装配类的状态及及应⽤信息GET Yesconfigprops显⽰所有 @ConfigurationProperties 列表GET Yesenv显⽰ ConfigurableEnvironment 中的属性GET Yesflyway显⽰ Flyway 数据库迁移信息GET Yeshealth显⽰应⽤的健康信息(未认证只显⽰status,认证显⽰全部信息详情)GET Noinfo显⽰任意的应⽤信息(在资源⽂件写info.xxx即可)GET Noliquibase展⽰Liquibase 数据库迁移GET Yesmetrics提供应⽤运⾏状态的完整度量指标报告GET Yesmappings显⽰所有 @RequestMapping 路径集列表GET Yes scheduledtasks显⽰应⽤程序中的计划任务GET Yessessions允许从Spring会话⽀持的会话存储中检索和删除⽤户会话。

三十五个常见的Spring Boot知识点

三十五个常见的Spring Boot知识点

Spring Boot 是微服务中最好的Java 框架. 我们建议你能够成为一名Spring Boot 的专家。

本文精选了三十五个常见的Spring Boot知识点,祝你一臂之力!问题一Spring Boot、Spring MVC 和Spring 有什么区别?1、SpringSpring最重要的特征是依赖注入。

所有SpringModules 不是依赖注入就是IOC 控制反转。

当我们恰当的使用DI 或者是IOC 的时候,我们可以开发松耦合应用。

松耦合应用的单元测试可以很容易的进行。

2、Spring MVCSpring MVC 提供了一种分离式的方法来开发Web 应用。

通过运用像DispatcherServelet,MoudlAndView 和ViewResolver 等一些简单的概念,开发Web 应用将会变的非常简单。

3、SpringBootSpring 和SpringMVC 的问题在于需要配置大量的参数。

Spring Boot 通过一个自动配置和启动的项来目解决这个问题。

为了更快的构建产品就绪应用程序,Spring Boot 提供了一些非功能性特征。

问题二什么是自动配置?Spring 和SpringMVC 的问题在于需要配置大量的参数。

我们能否带来更多的智能?当一个MVC JAR 添加到应用程序中的时候,我们能否自动配置一些beans?Spring 查看(CLASSPATH 上可用的框架)已存在的应用程序的配置。

在此基础上,Spring Boot 提供了配置应用程序和框架所需要的基本配置。

这就是自动配置。

问题三什么是Spring Boot Stater ?启动器是一套方便的依赖没描述符,它可以放在自己的程序中。

你可以一站式的获取你所需要的Spring 和相关技术,而不需要依赖描述符的通过示例代码搜索和复制黏贴的负载。

例如,如果你想使用Sping 和JPA 访问数据库,只需要你的项目包含spring-boot-starter-data-jpa 依赖项,你就可以完美进行。

springboot学习

springboot学习

springboot学习Spring Boot是为了简化Spring应用的创建、运行、调试、部署等而出现的,使用它可以做到专注于Spring应用的开发,而无需过多关注XML的配置。

简单来说,它提供了一堆依赖打包,并已经按照使用习惯解决了依赖问题---习惯大于约定。

Spring Boot默认使用tomcat作为服务器,使用logback提供日志记录。

无需多言,直接进入节奏:前提Spring Boot提供了一系列的依赖包,所以需要构建工具的支持:maven 或gradle。

个人仅熟悉maven,所以下面的内容都是maven相关的。

如果不熟悉maven,请先了解一下。

使用①新建一个maven项目。

②pom中parent设为spring-boot-starter-parent 。

建议使用最新的RELEASE 版本。

否则可能需要设置&lt;repositories/&gt; 和&lt;pluginRepositories/&gt; 。

③添加应用需要的starter模块,作为示例,我们仅添加web starter模块。

这里需要解释下starter模块,简单的说,就是一系列的依赖包组合。

例如web starter模块,就是包含了Spring Boot 预定义的一些Web开发的常用依赖:○spring-web, spring-webmvc Spring WebMvc 框架○tomcat-embed-* 内嵌Tomcat容器○jackson处理json数据○spring-*Spring框架○spring-boot-autoconfigure Spring Boot提供的自动配置功能换句话说,当你添加了相应的starter模块,就相当于添加了相应的所有必须的依赖包。

starter模块的列表及含义,见Spring Boot的启动器Starter详解。

至此,pom内容如下:&lt;project xmlns="/POM/4.0.0" xmlns:xsi="/2001/XMLSchema-instance"xsi:schemaLocation="/POM/4.0.0 /xsd/maven-4.0.0.xsd"&gt;&lt;modelVersion&gt;4.0.0&lt;/modelVersion&gt;&lt;groupId&gt;rry.spring&lt;/groupId&gt;&lt;artifactId&gt;larry-spring-demo4&lt;/artifactId&gt;&lt;version&gt;0.0.1-SNAPSHOT&lt;/version&gt;&lt;parent&gt;&lt;groupId&gt;org.springframework.boot&lt;/groupId&gt;&lt;artifactId&gt;spring-boot-starter-parent&lt;/artifactId&gt;&lt;version&gt;1.4.0.RELEASE&lt;/version&gt;&lt;/parent&gt;&lt;dependencies&gt;&lt;dependency&gt;&lt;groupId&gt;org.springframework.boot&lt;/groupId&gt;&lt;artifactId&gt;spring-boot-starter-web&lt;/artifactId&gt;&lt;/dependency&gt;&lt;/dependencies&gt;&lt;/project&gt;保存pom,刷新maven,以便刷新依赖导入。

springboot知识点总结

springboot知识点总结

springboot知识点总结⼀、springboot总结1、概述springboot是⼀种快速使⽤spring框架的简便⽅式,springboot简单来说相当于⼀个程序搭建的脚⼿架,最⼤的作⽤就是能够帮助我们快速构建项⽬,并且尽可能的减少xml的配置⽂件,让程序的开发更加的简单,开箱即⽤,快速上⼿,让我们在程序开发的过程中能狗将更多的精⼒去关注到程序的业务逻辑,⽽并⾮是配置⽂件,总之,我为springboot总结了三个字,概括:轻(易配置,易通⽤,启动时间段),快,简2、为什么要⽤springboot因为在之前Java开发有⼀个特别⼤的痛点就是配置特别臃肿和⿇烦,有时候当你在幸幸苦苦搭环境的时候,可能python程序员早已经将代码敲完了(年轻⼈不讲武德),主要就是原因就是以下两条:1、复杂的配置项⽬中的各种配置其实是开发时的⼀个损耗,程序员在开发过程中思维需要在项⽬配置和业务逻辑之间来回切换,所有的对程序员来时是⼀件⽐较头疼的事,在程序开发的过程中我觉得程序员因该把更多的时间和经历放在业务代码上,配置这些因该有时间私下悄悄研究2、混乱的项⽬管理项⽬中的依赖管理是⼀件⾮常难搞的事情,本来选择⽤哪些库就已将很头疼了,但是选择完依赖之后还得考虑版本冲突的问题,如果前期搞不好,后期可能出现致命的问题,并且在选择上⾯就是⼀种消耗,并且如果选择不对,后期的返⼯更是⼀个消耗,搞不好还会拉慢项⽬的进度,所有这个⼯作⼀般是公司的主程来搞。

综上,springboot就是解决了以上的问题,能够快速搭建⼀个开发环境,⽽且还没有那么多复杂的配置,并且可以对项⽬依赖进⾏⼀个很好的管理3、springboot的特点1、简易轻便,开箱即⽤,容易上⼿2、快,环境搭建快,没有繁琐的配置,约定⼤于配置3、提供了⼀些⼤型项⽬中常见的⾮功能性的特性,内嵌服务器,安全,指标,健康检测,等以上⼤概就是springboot的主要的⼀些特点4、springboot⽀持的配置⽂件类型1、.properties(优先加载,和之前的⼀样,但是⼀般⽤后者)2、.yml(采⽤缩进的⽅式,⼀般⽤这个,因为他可以放集合数组,并且⽐较清晰,容易阅读)3、.yaml(同上)5、springboot⾃动配置原理springboot的有⼀个启动类,可以从这个启动类出发进⾏探究:启动类上⾯有⼀个关键的注解:@SpringBootApplication,main⽅法中有⼀个run⽅法,springApplication.run(),分开讨论⼀下:1、**SpringBootApplication:**点击进⼊,可以看到有七个关键的注解:@Target(ElementType.TYPE)注解在什么位置⽣效,ElementType.TYPE在类上@Retention(RetentionPolicy.RUNTIME)什么时候⽣效,RetentionPolicy.RUNTIME运⾏时⽣效@Documented 是否⽣成api⽂档@Inherited 是否被继承**@SpringBootConfiguration(点进去@Configuration)**声明了当前类为配置类,springboot会⾃动扫描到添加了@Configuration的类,并且读取了配置信息,@SpringBootConfiguration声明了当前类为springboot的配置类,springboot有⼀个,所以我们不需⾃⼰添加@EnableAutoConfiguration是否引⼊了⼀些第三⽅库,如果引⼊了第三⽅库的⼀些依赖,这些配置⽣效,所以我们在构建了springboot项⽬后,如果想要引⽤第三⽅库,只需要导⼊相应的依赖,配置都交给springboot处理@ComponentScan就是⼀个扫描包的作⽤,因为这个注解是加在springboot的启动类,所以扫描的包是在类同级的包以及⼦包,因此,⼀般启动类会放在⼀个⽐较前的包⽬录中。

SpringBoot踩坑笔记二:SpringBoot整合redis报Noqualifyin。。。

SpringBoot踩坑笔记二:SpringBoot整合redis报Noqualifyin。。。

SpringBoot踩坑笔记⼆:SpringBoot整合redis报Noqualifyin。

今天在学习Spring Boot整合redis的过程中遇到个问题,在使⽤@Autowiredprivate RedisTemplate<String, Object> redisTemplate;注⼊时,启动项⽬会报异常org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'com.bh.redis.RedisTest': Unsatisfied dependency expressed through field 'redisTemplate'; nested exception is org.springframework.beans.facto at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor$AutowiredFieldElement.inject(AutowiredAnnotationBeanPostProcessor.java:586) ~[spring-beans-5.0.9.RELEASE.jar:5.0.9.RELEASE]at org.springframework.beans.factory.annotation.InjectionMetadata.inject(InjectionMetadata.java:90) ~[spring-beans-5.0.9.RELEASE.jar:5.0.9.RELEASE]at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor.postProcessPropertyValues(AutowiredAnnotationBeanPostProcessor.java:372) ~[spring-beans-5.0.9.RELEASE.jar:5.0.9.RELEASE]at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1341) ~[spring-beans-5.0.9.RELEASE.jar:5.0.9.RELEASE]at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.autowireBeanProperties(AbstractAutowireCapableBeanFactory.java:393) ~[spring-beans-5.0.9.RELEASE.jar:5.0.9.RELEASE]at org.springframework.test.context.support.DependencyInjectionTestExecutionListener.injectDependencies(DependencyInjectionTestExecutionListener.java:118) ~[spring-test-5.0.9.RELEASE.jar:5.0.9.RELEASE]at org.springframework.test.context.support.DependencyInjectionTestExecutionListener.prepareTestInstance(DependencyInjectionTestExecutionListener.java:83) ~[spring-test-5.0.9.RELEASE.jar:5.0.9.RELEASE]at org.springframework.boot.test.autoconfigure.SpringBootDependencyInjectionTestExecutionListener.prepareTestInstance(SpringBootDependencyInjectionTestExecutionListener.java:44) ~[spring-boot-test-autoconfigure-2.0.5.RELEASE.jar:2.0. at org.springframework.test.context.TestContextManager.prepareTestInstance(TestContextManager.java:246) ~[spring-test-5.0.9.RELEASE.jar:5.0.9.RELEASE]at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.createTest(SpringJUnit4ClassRunner.java:227) [spring-test-5.0.9.RELEASE.jar:5.0.9.RELEASE]at org.springframework.test.context.junit4.SpringJUnit4ClassRunner$1.runReflectiveCall(SpringJUnit4ClassRunner.java:289) [spring-test-5.0.9.RELEASE.jar:5.0.9.RELEASE]at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12) [junit-4.12.jar:4.12]at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.methodBlock(SpringJUnit4ClassRunner.java:291) [spring-test-5.0.9.RELEASE.jar:5.0.9.RELEASE]at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.runChild(SpringJUnit4ClassRunner.java:246) [spring-test-5.0.9.RELEASE.jar:5.0.9.RELEASE]at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.runChild(SpringJUnit4ClassRunner.java:97) [spring-test-5.0.9.RELEASE.jar:5.0.9.RELEASE]at org.junit.runners.ParentRunner$3.run(ParentRunner.java:290) [junit-4.12.jar:4.12]at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:71) [junit-4.12.jar:4.12]at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:288) [junit-4.12.jar:4.12]at org.junit.runners.ParentRunner.access$000(ParentRunner.java:58) [junit-4.12.jar:4.12]at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:268) [junit-4.12.jar:4.12]at org.springframework.test.context.junit4.statements.RunBeforeTestClassCallbacks.evaluate(RunBeforeTestClassCallbacks.java:61) [spring-test-5.0.9.RELEASE.jar:5.0.9.RELEASE]at org.springframework.test.context.junit4.statements.RunAfterTestClassCallbacks.evaluate(RunAfterTestClassCallbacks.java:70) [spring-test-5.0.9.RELEASE.jar:5.0.9.RELEASE]at org.junit.runners.ParentRunner.run(ParentRunner.java:363) [junit-4.12.jar:4.12]at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.run(SpringJUnit4ClassRunner.java:190) [spring-test-5.0.9.RELEASE.jar:5.0.9.RELEASE]at org.eclipse.jdt.internal.junit4.runner.JUnit4TestReference.run(JUnit4TestReference.java:89) [.cp/:na]at org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:41) [.cp/:na]at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:541) [.cp/:na]at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:763) [.cp/:na]at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:463) [.cp/:na]at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:209) [.cp/:na]Caused by: org.springframework.beans.factory.NoSuchBeanDefinitionException: No qualifying bean of type 'org.springframework.data.redis.core.RedisTemplate<ng.String, ng.Object>' available: expected at least 1 bean which qualifi at org.springframework.beans.factory.support.DefaultListableBeanFactory.raiseNoMatchingBeanFound(DefaultListableBeanFactory.java:1506) ~[spring-beans-5.0.9.RELEASE.jar:5.0.9.RELEASE]at org.springframework.beans.factory.support.DefaultListableBeanFactory.doResolveDependency(DefaultListableBeanFactory.java:1101) ~[spring-beans-5.0.9.RELEASE.jar:5.0.9.RELEASE]at org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveDependency(DefaultListableBeanFactory.java:1062) ~[spring-beans-5.0.9.RELEASE.jar:5.0.9.RELEASE]at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor$AutowiredFieldElement.inject(AutowiredAnnotationBeanPostProcessor.java:583) ~[spring-beans-5.0.9.RELEASE.jar:5.0.9.RELEASE]... 29 common frames omitted这么⼀⼤串看的是不是有点懵,其实咱们看⼀句可以了No qualifying bean of type 'org.springframework.data.redis.core.RedisTemplate<ng.String, ng.Object>' available:⼤致意思是没有与RedisTemplate<String, Object>匹配的bean解决⽅法1、不指定泛型,如@Autowiredprivate RedisTemplate redisTemplate;2、使⽤@Resource注解代替@Autowired,如@Resourceprivate RedisTemplate<String, Object> redisTemplate;。

spring培训学习笔记

spring培训学习笔记

s Spring培训学习笔记spring概述.................................................. 错误!未定义书签。

控制反转,还是依赖注入................................... 错误!未定义书签。

面向方面编程............................................. 错误!未定义书签。

一致性抽象............................................... 错误!未定义书签。

事务管理................................................. 错误!未定义书签。

测试..................................................... 错误!未定义书签。

与其它框架整合........................................... 错误!未定义书签。

控制反转..................................................... 错误!未定义书签。

容器(container) .......................................... 错误!未定义书签。

IoC类型................................................. 错误!未定义书签。

IoC in spring ............................................ 错误!未定义书签。

DI with spring ........................................... 错误!未定义书签。

AOP ......................................................... 错误!未定义书签。

【狂神说Java】SpringBoot笔记存档

【狂神说Java】SpringBoot笔记存档

【狂神说Java】SpringBoot笔记存档转⾃,⾮常感谢⽼师,仅作为个⼈笔记使⽤部分来⾃1、SpringBoot简介:Hello,World!1.1、回顾什么是SpringSpring是⼀个开源框架,2003 年兴起的⼀个轻量级的Java 开发框架,作者:Rod Johnson 。

Spring是为了解决企业级应⽤开发的复杂性⽽创建的,简化开发。

1.2、Spring是如何简化Java开发的为了降低Java开发的复杂性,Spring采⽤了以下4种关键策略:1、基于POJO的轻量级和最⼩侵⼊性编程,所有东西都是bean;2、通过IOC,依赖注⼊(DI)和⾯向接⼝实现松耦合;3、基于切⾯(AOP)和惯例进⾏声明式编程;4、通过切⾯和模版减少样式代码,RedisTemplate,xxxTemplate;1.3、什么是SpringBoot学过javaweb的同学就知道,开发⼀个web应⽤,从最初开始接触Servlet结合Tomcat, 跑出⼀个Hello Wolrld程序,是要经历特别多的步骤;后来就⽤了框架Struts,再后来是SpringMVC,到了现在的SpringBoot,过⼀两年⼜会有其他web框架出现;你们有经历过框架不断的演进,然后⾃⼰开发项⽬所有的技术也在不断的变化、改造吗?建议都可以去经历⼀遍;⾔归正传,什么是SpringBoot呢,就是⼀个javaweb的开发框架,和SpringMVC类似,对⽐其他javaweb框架的好处,官⽅说是简化开发,约定⼤于配置, you can "just run",能迅速的开发web应⽤,⼏⾏代码开发⼀个http接⼝。

所有的技术框架的发展似乎都遵循了⼀条主线规律:从⼀个复杂应⽤场景衍⽣⼀种规范框架,⼈们只需要进⾏各种配置⽽不需要⾃⼰去实现它,这时候强⼤的配置功能成了优点;发展到⼀定程度之后,⼈们根据实际⽣产应⽤情况,选取其中实⽤功能和设计精华,重构出⼀些轻量级的框架;之后为了提⾼开发效率,嫌弃原先的各类配置过于⿇烦,于是开始提倡“约定⼤于配置”,进⽽衍⽣出⼀些⼀站式的解决⽅案。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

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目录。

相关文档
最新文档