文章目录
- 资源存放规则
- pom.xml配置之springboot
- application.properties配置
- 启动类配置
- springboot拦截器配置
- 使用日志的方式
- logback-spring.xml配置
- 改变启动项目时会出现springboot的图标
资源存放规则
- 静态资源放在resources下的static包内,跳转的页面放在resources下的templates包内
- 直接替换掉以前maven项目把页面放在WEB-INF/views 的方式
- 在static包下创建一个error的包存放异常跳转的自定义页面,404.html 用于访问发生404信息而显示的页面,其他错误信息代码以此类推
pom.xml配置之springboot
- 继承springboot父项目依赖
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.3.3.RELEASE</version>
</parent>
- springboot打包插件
<build>
<plugins>
<!-- springboot打包插件-->
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
<!-- mybatis逆向工程插件-->
<plugin>
<groupId>org.mybatis.generator</groupId>
<artifactId>mybatis-generator-maven-plugin</artifactId>
<version>1.3.2</version>
<configuration>
<verbose>true</verbose>
<overwrite>false</overwrite>
</configuration>
</plugin>
</plugins>
</build>
- springboot提供的依赖
- 插件依赖内就包含mybatis,无需配置mybatis依赖,配置了会冲突
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-aop</artifactId>
</dependency>
<dependency>
<groupId>com.github.pagehelper</groupId>
<artifactId>pagehelper-spring-boot-starter</artifactId>
<version>1.3.0</version>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-freemarker</artifactId>
</dependency>
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid-spring-boot-starter</artifactId>
<version>1.1.21</version>
</dependency>
<!-- SpringBoot热部署插件 -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-devtools</artifactId>
</dependency>
- 其他的一些依赖
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
</dependency>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
</dependency>
<!-- 阿里巴巴的JSON方式-->
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>fastjson</artifactId>
<version>1.2.47</version>
</dependency>
<!--poi-->
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi</artifactId>
<version>4.1.2</version>
</dependency>
<!--fileupload-->
<dependency>
<groupId>commons-fileupload</groupId>
<artifactId>commons-fileupload</artifactId>
<version>1.3.1</version>
</dependency>
<!--Hutool 生成流水号-->
<dependency>
<groupId>cn.hutool</groupId>
<artifactId>hutool-all</artifactId>
<version>5.4.7</version>
</dependency>
application.properties配置
- 放在resources下
- 配置了此springboot配置文件,以前maven项目用的applicationContext.xml直接被替代了
#指定要使用哪个环境配置文件 比如 application-pro.properties
#spring.profiles.active=pro
#设置端口
server.port=80
#连接数据库
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
spring.datasource.url=jdbc:mysql:///car_business?useUnicode=true&characterEncoding=utf8&serverTimezone=GMT%2B8
spring.datasource.username=root
spring.datasource.password=19980220
#分页插件
pagehelper.reasonable=true
pagehelper.page-size-zero=true
#打印sql日志
mybatis.configuration.log-impl=org.apache.ibatis.logging.stdout.StdOutImpl
#设置日志级别
logging.level.root=info
#mybatis 可使用别名
mybatis.type-aliases-package=com.edt.domain
#freemarker
#一般我们会做3个配置,其余默认即可
#暴露seesion对象属性,可以在页面上获取session对象
spring.freemarker.expose-session-attributes=true
#配置为传统模式,空值自动处理
spring.freemarker.settings.classic_compatible=true
#重新制定模板后缀,springboot 2.2.x后 默认后缀是.ftlh
spring.freemarker.suffix=.ftl
启动类配置
- 启动类内部就配好tomcat,所以无需使用本地tomcat或者使用插件tomcat方式打开了,直接运行启动类即可启动项目
- 放在项目的模块包根路径,因为会扫描此类所在包及其所在包内的所有,放外面一点扫描范围则大
- 添加注解@MapperScan 扫描mapper,此方式也替代了maven项目的applicatonContext.xml中配置扫描的方式
@SpringBootApplication
@MapperScan("com.edt.mapper")
public class App {
public static void main(String[] args) {
SpringApplication.run(App.class,args);
}
}
springboot拦截器配置
- springboot用java类作为配置,取代了maven项目的applicationContext.xml配置
- java类作为配置类需要加上@Configuration注解
- 目前有2个拦截器,登陆拦截器和权限拦截器,将这2个拦截器配置给springboot管理,不懂拦截器的请跳转至: 登陆拦截和权限拦截器如何编写?
- 分别将这些拦截器类上都加上@Component 注解给到spring管理,为了给下面拦截器配置注入
- 实现WebMvcConfigurer接口,重写addInterceptors方法添加拦截器
- 注入要被添加的拦截器,通过addInterceptor方法添加它们
- registry对象中的.excludePathPatterns() 以后可以继续.excludePathPatterns(),一直累加不会被拦截的路径
@Configuration
public class WebMvcConfig implements WebMvcConfigurer {
public static final String[] excludePathPatterns ={
"/css/**","/js/**","/login.html","/index","/systemDictionaryItem/selectByTypeSn",
"/appointment/save","/userLogin","/img/**"
};
@Autowired
private LoginInterceptor loginInterceptor;
@Autowired
private PermissionInterceptor permissionInterceptor;
@Override
public void addInterceptors(InterceptorRegistry registry) {
registry.addInterceptor(loginInterceptor)
.addPathPatterns("/**")
.excludePathPatterns(excludePathPatterns);
registry.addInterceptor(permissionInterceptor)
.addPathPatterns("/**")
.excludePathPatterns(excludePathPatterns);
}
}
使用日志的方式
- 直接在需要日志的类上添加@Slf4j注解即可,内部就帮你创建好log变量名的日志对象了
- 然后直接log.xxx 就能调用此日志对象打印日志了
- 可以在打印里面加{}作为占位符, 然后逗号后面再加需要填入的值进去,依顺序填入
logback-spring.xml配置
- 在resources下创建logback-spring.xml
- 可以使日志信息生成出文件在项目的根目录下(这部分被我注释掉了,需要用解开注释即可)
<?xml version="1.0" encoding="UTF-8"?>
<!--
scan:开启日志框架的热部署,默认值true表示开启
scanPeriod:热部署的频率,默认值60 second
debug:设置输出框架内部的日志,默认值false
-->
<configuration scan="true" scanPeriod="60 second" debug="false">
<property name="appName" value="springboot demo" />
<contextName>${appName}</contextName>
<!-- appender:日志输出对象,配置不同的类拥有不同的功能
ch.qos.logback.core.ConsoleAppender:日志输出到控制台
-->
<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
<encoder>
<pattern>%d{yyyy-MM-dd-HH:mm:ss} %level [%thread]-%logger{35} >> %msg %n</pattern>
</encoder>
</appender>
<!--ch.qos.logback.core.FileAppender:日志输出到文件中-->
<!-- <appender name="fileAppender" class="ch.qos.logback.core.FileAppender">-->
<!-- <encoder>-->
<!-- <pattern>%-4relative [%thread] %level %logger{35} - %msg %n</pattern>-->
<!-- </encoder>-->
<!-- <append>true</append>-->
<!-- <file>mylog.log</file>-->
<!-- </appender>-->
<!-- root是项目通用的logger,一般情况下都是使用root配置的日志输出
level:按照级别输出日志,日志级别,级别越高,输出的内容越少
trace < debug < info < warn < error
-->
<root level="info">
<appender-ref ref="STDOUT" /> <!-- 如果要生成日志文件这里则改为fileAppender-->
</root>
<!-- 自定义的logger,用于专门输出特定包中打印的日志
<logger name="cn.wolfcode.crm.mapper" level="trace">
</logger>
-->
</configuration>
改变启动项目时会出现springboot的图标
将你想要显示的图案放入banner.txt文件,并把此文件放进springboot的resources下即可
- 英文生成banner图案链接地址:http://patorjk.com/software/taag/#p=display&f=Graffiti&t=EDT
- 上传图片生成banner图案链接地址一:https://www.fontke.com/tool/image2ascii
- 网络图片生成banner图案链接地址:https://www.degraeve.com/img2txt.php
本人启动项目的控制台效果图
- 此演示的banner.txt文件已放入我博客资源下