一: 首次搭建:https://blog.csdn.net/u013187139/article/details/68944972

整合mybatis: https://www.jianshu.com/p/a811a89d1b28

 log4j日志配置:https://www.jb51.net/article/105032.htm

 reids配置:https://blog.csdn.net/baidu_41669919/article/details/79148203  https://www.cnblogs.com/baizhanshi/p/7503417.html

 redis加锁:

 权限控制shiro:   简单的实现登录

 返回工具类(包括错误代理)、自定义过滤器:https://blog.csdn.net/small_mouse0/article/details/77840130

 图片验证码(流的形式返回给前端):https://blog.csdn.net/Colton_Null/article/details/78744240

 报错时,跳转默认报错页面:

 文件的批量上传下载:https://www.jb51.net/article/106842.htm

 多数据源的配置:

 AOP切面的引用:https://www.cnblogs.com/bigben0123/p/7779357.html

 springboot系统学习:https://www.zybuluo.com/SendLin/note/1149496#%E4%B9%9D%E8%BF%87%E6%BB%A4%E5%99%A8

二: 遇到的坑:

  1. 连接数据库时,报错:Invalid bound statement (not found): com.demo.mapper.UserMapper.findUser

  (1)检查注解@Mapper是否添加上,引用的地方是否有扫描注解@ComponentScan(value = {"com.demo.mapper"}), 结果都有

  (2)检查dao文件和xml文件中的方法名是否相同, 相同

  (3)检查配置文件application.properties中  映射xml文件路径的配置  mybatis.mapper-locations=classpath:com/demo/mapper/xml/*.xml  是否正确,  正确

  (4)检查xml文件中 <mapper namespace="com.demo.mapper.UserMapper">  命名空间是否正确, 正确

  (5)检查编译文件target中classes目录下是否成功编译了xml文件,  结果    发现了问题  目录下 并没有 对应的xml文件

    原因:idea编辑器,不会自动编译src/main/java中的xml文件,只会自动编译resource下的,

        但为了保持结构清晰,我们习惯把xml文件放在和dao同级或低一级的xml包中,此时,就出现了上述问题;

    解决方法:添加poom依赖,强制编译:build中添加如下代码:

    <resources>
<resource>
<directory>src/main/java</directory>
<includes>
<include>**/*.xml</include>
</includes>
<filtering>false</filtering>
</resource>
</resources>

    如图:

    

  2. 配置log4j日志文件时,控制台可以输出,但生成不了日志文件:原因:日志输出的路径出错,应该精确到文件名  E:/Test/testSpringBoot/log/mylog.log

    (1)在src/main/resources目录下加入log4j.properties配置文件

    (2)在log4j.properties配置文件中添加代码如下

# LOG4J配置
log4j.rootCategory=INFO, stdout, file
# 控制台输出
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss,SSS} %5p %c{1}:%L - %m%n # root日志输出
log4j.appender.file=org.apache.log4j.DailyRollingFileAppender
log4j.appender.file.file=E:/Test/testSpringBoot/log/mylog.log
log4j.appender.file.DatePattern='.'yyyy-MM-dd
log4j.appender.file.layout=org.apache.log4j.PatternLayout
log4j.appender.file.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss,SSS} %5p %c{1}:%L - %m%n # com.demo包下的日志配置
log4j.category.com.demo=DEBUG, didifile
# com.demo
log4j.appender.didifile=org.apache.log4j.DailyRollingFileAppender
log4j.appender.didifile.file=E:/Test/testSpringBoot/log/mylog2.log
log4j.appender.didifile.DatePattern='.'yyyy-MM-dd
log4j.appender.didifile.layout=org.apache.log4j.PatternLayout
log4j.appender.didifile.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss,SSS} %5p %c{1}:%L ---- %m%n log4j.logger.error=errorfile
# error日志输出
log4j.appender.errorfile=org.apache.log4j.DailyRollingFileAppender
log4j.appender.errorfile.file=E:/Test/testSpringBoot/log/mylog3.log
log4j.appender.errorfile.DatePattern='.'yyyy-MM-dd
log4j.appender.errorfile.Threshold = ERROR
log4j.appender.errorfile.layout=org.apache.log4j.PatternLayout
log4j.appender.errorfile.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss,SSS} %5p %c{1}:%L - %m%n

  3. 经过接口跳转至页面时,报错(有一个需要注意的点是:注解只能是 @Controller,不能是@RestController,否则无法跳转):

      

    

    由于,我在application.yml中没有配置默认前后缀,所以箭头指向的地方应该改为:   return "/Test.html"     加上后缀后,成功;

    或者,在配置文件中加上后缀(刚开始没有箭头指向的那一行配置,添加上以后就可以了):

      

  4. 整合mybatisPlus时,遇到的问题, 报错:创建mapper的bean对象时出错,后来在网上找了一个方法是,在启动类上加上注解:  @ComponentScan("com.demo.mapper.*")  但加完以后,在我这并不好使,启动虽然可以正常启动,但访问时,却只能访问页面,接口无法访问,连断点都不打上,应该是连编译都没有编译(自己猜测的原因,可能是加上注解类后,导致项目启动时,没有自动扫描,导致controllermei没有正常编译,故调用不了),后来又经过几次尝试,还是不行,最后就把所有的关于mabatisplus的配置和设置,一点点删掉,看看问题到底出在哪,最后发现应该是配置文件出现的问题:

      

    箭头指向的配置注释掉了,就没有报错了(当然,在重新配置的过程中,我也把连接池的配置,重新走了一遍,不排除是druid连接池没有正常配置导致的错误,这个,我准备再次搭建时,一探究竟)

  5. 文件的上传与下载时,遇到路径不对的问题:尚未解决

    

三: 其他实用功能: https://blog.csdn.net/q15150676766/article/details/76563294             https://www.jianshu.com/p/3d788198efab

  1. 定制banner

    

    方法:

      (1)在src/main/resource下新建一个banner.txt文件;

      (2)去http://patorjk.com/software/taag/下自定义自己所要显示的文字,然后点击下面的select & copy把复制的内容复制到banner.txt文件中,重启一下Springboot,发现已经成功了;

      (3)如需关闭banner,则在入口main方法中加入 如下代码:

  @SpringBootApplication
  @EnableScheduling //增加支持定时任务的注解
  public class TestSpringBootApplication {   public static void main(String[] args) {
   //SpringApplication.run(TestSpringBootApplication.class, args);
   SpringApplication application = new SpringApplication(TestSpringBootApplication.class);
   application.setBannerMode(Banner.Mode.OFF);
   application.run(args);
   }   }

      (4)banner下添加springboot的版本号 : 在banner.txt这个文件中添加下面代码

        springboot版本号:  ${spring-boot.version}
springboot版本号: ${spring-boot.formatted-version}

    

  2. 设置默认欢迎页

    当输入域名是可以自动跳转到默认指定的网页

@Configuration
public class DefaultView extends WebMvcConfigurerAdapter{ @Override
public void addViewControllers(ViewControllerRegistry registry) {
registry.addViewController("/").setViewName("forward:/index");
registry.setOrder(Ordered.HIGHEST_PRECEDENCE);
super.addViewControllers(registry);
}
}

  3. 在springboot中static是用来放资源的,templates是用来放页面的。

  

  4. springboot项目的打包部署上线

    a. 修改poom.xml文件的打包方式

      <packaging>war</packaging>

    b. 修改启动类

package com.demo;

import org.springframework.boot.Banner;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration;
import org.springframework.boot.builder.SpringApplicationBuilder;
import org.springframework.boot.web.servlet.MultipartConfigFactory;
import org.springframework.boot.web.servlet.support.SpringBootServletInitializer;
import org.springframework.cache.annotation.EnableCaching;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.ComponentScan;
import org.springframework.scheduling.annotation.EnableScheduling;
import org.springframework.stereotype.Component;
import javax.servlet.MultipartConfigElement; @SpringBootApplication(exclude = {DataSourceAutoConfiguration.class})
@EnableScheduling //增加支持定时任务的注解
@EnableCaching //添加使用缓存的注解
public class TestSpringBootApplication extends SpringBootServletInitializer { public static void main(String[] args) {
SpringApplication.run(TestSpringBootApplication.class, args);
//如需关闭banner图时
/*SpringApplication application = new SpringApplication(TestSpringBootApplication.class);
application.setBannerMode(Banner.Mode.OFF);
application.run(args);*/
} @Override//为了打包springboot项目
protected SpringApplicationBuilder configure(SpringApplicationBuilder builder) {
return builder.sources(this.getClass());
} @Bean
MultipartConfigElement multipartConfigElement() {
MultipartConfigFactory factory = new MultipartConfigFactory();
factory.setLocation("E:/Test/testSpringBoot");
return factory.createMultipartConfig();
}

    c. 修改远程服务器中tomcat 下 conf/server.xml中的内容,找到Host 标签 添加自己上传war包的信息

<Context docBase="MyWebsite.war" path="/" reloadable="false" debug="0" privileged="true" ></Context>

    此内容放在host标签内,如下

<Host name="localhost"  appBase="webapps"  unpackWARs="true" autoDeploy="true">
<Context docBase="MyWebsite.war" path="/" reloadable="false" debug="0" privileged="true" ></Context>
<Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"
prefix="localhost_access_log" suffix=".txt"
pattern="%h %l %u %t &quot;%r&quot; %s %b" /> </Host>

    d. 将war包放在webapps下

    

    e. 访问方式

    ip:端口号/war包名/接口名称及参数

    ip:端口号/war包名/页面文件名

    

    f. 如果不想加包名,直接通过ip加端口号就能访问,则按如下设置:

    打开tomcat/conf/server.xml文件,更改如下:

<Context docBase="MyWebsite/" path="/" reloadable="false" debug="0" privileged="true" ></Context>

    

    

    具体配置文件的各标签解析,以及tomcat默认欢迎页的设置,可以参考:https://www.cnblogs.com/mufengforward/p/9444495.html

    
四:我的搭建项目:https://gitee.com/mufengforward/testSpringBoot

springBoot的搭建使用记录的更多相关文章

  1. 1. 开篇-springboot环境搭建

    最初学习strurs2时,虽然觉得也挺好用的,但也有一些不便的地方:1. 模型绑定必须要在Action中声明对应模型的成员变量:2. Action中对外提供调用的接口必须明确注明:3. 要声明一大堆的 ...

  2. springboot+mybatis搭建web项目

    使用idea+springboot+Mybatis搭建一个简单的web项目. 首先新建一个项目: 在这里选择Maven项目也可以,但是IDEA为我们提供了一种更方便快捷的创建方法,即Spring In ...

  3. mercurial(Hg) Server 搭建 过程记录

    mercurial(Hg) Server 搭建 过程记录 1.  环境说明 只是测试搭建,环境为本机开发环境:win 8.1 + IIS8.5 软件准备: 2.  软件安装 先安装Python2.7, ...

  4. springboot +mybatis 搭建完整项目

    springboot + mybatis搭建完整项目 1.springboot整合mybatis注解版 转:https://blog.csdn.net/u013187139/article/detai ...

  5. 使用idea+springboot+Mybatis搭建web项目

    使用idea+springboot+Mybatis搭建web项目 springboot的优势之一就是快速搭建项目,省去了自己导入jar包和配置xml的时间,使用非常方便. 1.创建项目project, ...

  6. 【运维技术】redis(一主两从三哨兵模式搭建)记录

    redis(一主两从三哨兵模式搭建)记录 目的: 让看看这篇文章的的人能够知道:软件架构.软件的安装.配置.基本运维的操作.高可用测试.也包含我自己,能够节省对应的时间. 软件架构: 生产环境使用三台 ...

  7. 使用Springboot快速搭建SSM框架

    Spring Boot设计目的是用来简化Spring应用的初始搭建以及开发过程.该框架使用了特定的方式来进行配置,从而使开发人员不再需要定义样板化的配置. 一.环境准备 Idea 2017 或 201 ...

  8. idea+springboot+Mybatis搭建web项目

    使用idea+springboot+Mybatis搭建一个简单的web项目. 首先新建一个项目: 在这里选择Maven项目也可以,但是IDEA为我们提供了一种更方便快捷的创建方法,即Spring In ...

  9. 超详细,新手都能看懂 !使用SpringBoot+Dubbo 搭建一个简单的分布式服务

    来自:JavaGuide Github 地址:https://github.com/Snailclimb/springboot-integration-examples 目录: 使用 SpringBo ...

随机推荐

  1. Rest架构风格

    一.REST介绍:: 1.REST是英文 Representational State Transfer的缩写 -- 表象化状态转变 或者 表述性状态转移 1.1 REST是 Web服务的一种架构风格 ...

  2. 使用hibernate从一方获取多方信息时报错:org.hibernate.LazyInitializationException: failed to lazily initialize a collection of role

    引起原因:hibernate加载关联对象的方式有懒加载方式和立即加载方式. 如果在多对一的配置中没有指定加载方式,而一对多的配置中指定了懒加载方式,因此在获取一方是可获取到值,而获取多方时sessio ...

  3. js setInterval详解

    [自己总结]: 语法  setInterval(code,interval) ①可以有第三个参数,第三个参数作为第一个参数(函数)的参数 ②第一个参数是函数,有三种形式: 1.传函数名,不用加引号,也 ...

  4. lnmp源码编译安装zabbix

    软件安装 Mysql 安装 tar xf mysql-5.7.13-1.el6.x86_64.rpm-bundle.tar -C mysql rpm -e --nodeps  mysql-libs-5 ...

  5. dj django与ajax交互

    Ajax简介 AJAX(Asynchronous Javascript And XML)翻译成中文就是“异步Javascript和XML”.即使用Javascript语言与服务器进行异步交互,传输的数 ...

  6. git使用教程(初次配置+错误提示)

    初次使用配置目录:https://blog.csdn.net/Esc_Tab_End/article/details/84144063 error: RPC failed; curl 56 OpenS ...

  7. 20169207《Linux内核原理及分析》第十三周作业

    第一周作业::对Linux的基本知识进行了了解,并对基本操作进行熟悉和应用. 第二周作业::了解了冯诺依曼体系结构.各种寄存器的功能和汇编指令的作用和功能. 第三周作业::这周主要了解了Linux系统 ...

  8. (最短路)Silver Cow Party --POJ--3268

    题目链接: http://poj.org/problem?id=3268 题意: 先求出所有牛到x的最短路,再求出x到所有牛的最短路,两者相加取最大值(单向图)(可以用迪杰斯特拉,SPFA) 迪杰斯特 ...

  9. 在linux中如何解压.tgz

    然后首先:打开终端 1,进入下载路径下,比如我的就是进入Downloads下. 输入命令: cd Downloads 2,解压到当前文件夹 输入:tar zxvf  文件名.tgz -C ./     ...

  10. spring mvc使用ModelAndView时发生No request handling method with name '方法 名' in class [类名]的错误

    我日,下午关于标题错误查了好久,网上啥说法都有, 后来发现是ModelAndView的路径引错了 正确路径应该为: import org.springframework.web.servlet.Mod ...