博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
springBoot的搭建使用记录
阅读量:7282 次
发布时间:2019-06-30

本文共 6783 字,大约阅读时间需要 22 分钟。

一: 首次搭建:

   整合mybatis:

 log4j日志配置:

 reids配置:  

 redis加锁:

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

 返回工具类(包括错误代理)、自定义过滤器:

 图片验证码(流的形式返回给前端):

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

 文件的批量上传下载:   

 多数据源的配置:

 AOP切面的引用:

 springboot系统学习:

 

二: 遇到的坑:

  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中添加如下代码:

src/main/java
**/*.xml
false

    如图:

    

   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.ConsoleAppenderlog4j.appender.stdout.layout=org.apache.log4j.PatternLayoutlog4j.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.loglog4j.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.demolog4j.appender.didifile=org.apache.log4j.DailyRollingFileAppender log4j.appender.didifile.file=E:/Test/testSpringBoot/log/mylog2.loglog4j.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%nlog4j.logger.error=errorfile # error日志输出log4j.appender.errorfile=org.apache.log4j.DailyRollingFileAppender log4j.appender.errorfile.file=E:/Test/testSpringBoot/log/mylog3.loglog4j.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. 文件的上传与下载时,遇到路径不对的问题:尚未解决

    

 

三: 其他实用功能:              

  1. 定制banner

    

    方法:

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

      (2)去下自定义自己所要显示的文字,然后点击下面的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. 设置默认欢迎页

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

@Configurationpublic 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文件的打包方式 

      
war

    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包的信息

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

    d. 将war包放在webapps下

    

    e. 访问方式

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

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

    

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

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

    

    

    具体配置文件的各标签解析,以及tomcat默认欢迎页的设置,可以参考:

     四:我的搭建项目:

转载于:https://www.cnblogs.com/mufengforward/p/9184431.html

你可能感兴趣的文章
进入编辑模式、vim命令模式、vim实践
查看>>
postfix发送邮件
查看>>
CUDNN学习笔记(3)
查看>>
Python Mock 的入门
查看>>
shell练习
查看>>
SQL SERVER 2005 远程查询
查看>>
虚拟币交易平台虚拟货币交易平台山寨币开发数字货币交易平台
查看>>
linux>>学习测试<<linux
查看>>
CloudStack项目相关-- 配置 IPMI
查看>>
[你必须知道的异步编程]——基于任务的异步模式(TAP)
查看>>
SqlHelper(带详细中文注释)
查看>>
连连看编辑器
查看>>
Outlook delete folder by mistaken
查看>>
Memcached 雪崩处理
查看>>
open .ost file
查看>>
Windows Phone 7 Tips (5)
查看>>
解决C++代码单元测试中的难题-不可验证和IO调用
查看>>
对公司网站DNS解析异常的排查与处理
查看>>
visual assist 1837 支持vs2010
查看>>
android用户界面-菜单
查看>>