本人大二双非软件工程本科生,疫情期间在家无聊搭建了几个spring-boot项目,搭建的时候也出过许多问题,也感谢百度上面的大佬,和各种群里面的大佬的耐心指点,今天我抱着巩固知识,也是造福各位才开始学spring-boot的同学们的想法(大佬除外)写下这篇博客,写的不好请指出了,但是不要骂我,谢谢,话不多说,我们开始搭建spring-boot项目
搭建所需
1 idea
2 maven
3 tomcat
第一步:新建文件
首先我们需要新建一个project
点击左上角的file->new->project
选中spring initializr,然后点击next
把java version改成 8,后面有需要选中的依赖,我们这里先都不选,到后面我们再去配置,最后路径选择选中自己想要的路径就可以了,这里就不展示我的路径了。
第二步: 导入依赖
当项目新建好后,在右下角会出现这个提示,我们点击import changes,idea会自动给我们导入,这里第一次建立spring-boot的朋友可能需要等一会,笔者第一次建立spring-boot项目的时候足足等了一分多钟。
导入jar包完成后,点击external libraries,会出现一堆如图所示的jar包,这里不用管他们
第三部: 导入依赖
这里我们需要导入依赖了,点击pom文件,我们开始导入依赖(注意,笔者这里文件爆红是因为有git,没有git的朋友们是不会这样显示红色的)
<dependency>
<groupId>org.springframework.bootgroupId>
<artifactId>spring-boot-starter-webartifactId>
dependency>
这个依赖是用来打开网页的,如果没有这个依赖就无法打开网页,将此依赖复制到pom.xml的depandencies标签里面。
如图所示,点击绿色按钮,当然,你也可以直接点击右上角的绿色按钮,之所以要你点这里,是要你知道springboot项目的启动都是从这里,所以这个类可不要去删,如果你的java包还有resource包不是如图所示的颜色,而是灰色,那么你需要这么做。
在没有变成在种颜色的图标上面右键,选中mark directory,按照颜色选择,
但是一般来说都不会出现这样的问题。
现在我们测试一下,点击按钮我们会看见控制台出现一大堆话
如果是这样的,那么恭喜你,离成功又进了一步,图中大框框起来的文字是可以自己修改的,虽然并没有什么屁用,但是可能有些人看的舒服,那么在这里教大家改一下。
我们只要在resources文件夹下面新建一个banner.txt文件,在里面输入自己想要的字符,然后在运行就可以了,如果失败了,可以重启idea在运行一下,需要什么图片去这个网站去取就可以了
取图片网站
笔者这里取了个如来佛祖,保佑无bug,hhhh
最后的样子是这样的
扯远了,我们运行项目,进入浏览器,输入网址:http://localhost:8080/
然后出现这样的画面
这就说明已经成功, 报404错误是因为我们没有给他设计html页面,所以当然会报错了,不要着急,我们继续。
我们把这些依赖全部导入进去,要把之前的依赖全部删掉或者覆盖
<dependency>
<groupId>org.springframework.bootgroupId>
<artifactId>spring-boot-starter-webartifactId>
dependency>
<dependency>
<groupId>org.springframework.bootgroupId>
<artifactId>spring-boot-starter-testartifactId>
<scope>testscope>
<exclusions>
<exclusion>
<groupId>org.junit.vintagegroupId>
<artifactId>junit-vintage-engineartifactId>
exclusion>
exclusions>
dependency>
<dependency>
<groupId>org.projectlombokgroupId>
<artifactId>lombokartifactId>
dependency>
<dependency>
<groupId>org.springframework.bootgroupId>
<artifactId>spring-boot-starter-thymeleafartifactId>
dependency>
<dependency>
<groupId>org.webjarsgroupId>
<artifactId>jqueryartifactId>
<version>3.4.1version>
dependency>
<dependency>
<groupId>org.springframework.bootgroupId>
<artifactId>spring-boot-starter-jdbcartifactId>
dependency>
<dependency>
<groupId>mysqlgroupId>
<artifactId>mysql-connector-javaartifactId>
<scope>runtimescope>
dependency>
<dependency>
<groupId>com.alibabagroupId>
<artifactId>druid-spring-boot-starterartifactId>
<version>1.1.21version>
dependency>
<dependency>
<groupId>com.alibabagroupId>
<artifactId>druidartifactId>
<version>1.1.21version>
dependency>
<dependency>
<groupId>org.xmlunitgroupId>
<artifactId>xmlunit-coreartifactId>
dependency>
<dependency>
<groupId>log4jgroupId>
<artifactId>log4jartifactId>
<version>1.2.17version>
dependency>
<dependency>
<groupId>org.mybatis.spring.bootgroupId>
<artifactId>mybatis-spring-boot-starterartifactId>
<version>2.1.1version>
dependency>
<dependency>
<groupId>org.springframework.securitygroupId>
<artifactId>spring-security-webartifactId>
<version>5.0.1.RELEASEversion>
dependency>
<dependency>
<groupId>org.springframework.securitygroupId>
<artifactId>spring-security-configartifactId>
<version>5.0.1.RELEASEversion>
dependency>
<dependency>
<groupId>org.springframework.securitygroupId>
<artifactId>spring-security-coreartifactId>
<version>5.0.1.RELEASEversion>
dependency>
<dependency>
<groupId>org.springframework.securitygroupId>
<artifactId>spring-security-taglibsartifactId>
<version>5.0.1.RELEASEversion>
dependency>
<dependency>
<groupId>org.springframework.bootgroupId>
<artifactId>spring-boot-devtoolsartifactId>
<optional>trueoptional>
dependency>
<dependency>
<groupId>javax.validationgroupId>
<artifactId>validation-apiartifactId>
dependency>
<dependency>
<groupId>org.hibernategroupId>
<artifactId>hibernate-validatorartifactId>
<version>5.1.0.Finalversion>
dependency>
<dependency>
<groupId>org.thymeleaf.extrasgroupId>
<artifactId>thymeleaf-extras-springsecurity5artifactId>
<version>3.0.4.RELEASEversion>
dependency>
<dependency>
<groupId>com.aliyungroupId>
<artifactId>aliyun-java-sdk-coreartifactId>
<version>4.4.6version>
dependency>
<dependency>
<groupId>com.aliyungroupId>
<artifactId>aliyun-java-sdk-ecsartifactId>
<version>4.17.6version>
dependency>
<dependency>
<groupId>com.alibabagroupId>
<artifactId>fastjsonartifactId>
<version>1.2.66version>
dependency>
在这里我们导入了,mybaits,lombok,阿里druid,security,thymeleaf的依赖,大家可以按ctrl+f去搜索关键字,看一下这些依赖,这里就不给大家展示了,现在介绍一下这些依赖的作用
当导入玩全部的依赖后,我们在运行试一下,记得点击右下角的import changes
如图所示,报错了,这是为什么呢?原来是导入了mybatis,但是我们没有配置数据库,导致它找不到url,所以报错了,那么我们现在去配置一下。
第三步 :写好配置文件
spring:
datasource:
username: root
password: ehero000921
#?serverTimezone=UTC解决时区的报错
url: jdbc:mysql://localhost:3306/mybatis?serverTimezone=UTC&useUnicode=true&characterEncoding=utf-8
driver-class-name: com.mysql.cj.jdbc.Driver
type: com.alibaba.druid.pool.DruidDataSource # 自定义数据源
#Spring Boot 默认是不注入这些属性值的,需要自己绑定
#druid 数据源专有配置
initialSize: 5
minIdle: 5
maxActive: 20
maxWait: 60000
timeBetweenEvictionRunsMillis: 60000
minEvictableIdleTimeMillis: 300000
validationQuery: SELECT 1 FROM DUAL
testWhileIdle: true
testOnBorrow: false
testOnReturn: false
poolPreparedStatements: true
#配置监控统计拦截的filters,stat:监控统计、log4j:日志记录、wall:防御sql注入
#如果允许时报错 java.lang.ClassNotFoundException:
# org.apache.log4j.Priority
#则导入 log4j 依赖即可,Maven 地址:
# https://mvnrepository.com/artifact/log4j/log4j
filters: stat,wall,log4j
maxPoolPreparedStatementPerConnectionSize: 20
useGlobalDataSourceStat: true
spring.datasource.primary.filters: stat, wal1, 1og4j
connectionProperties: druid.stat.mergeSql=true;druid.stat.slowSqlMillis=500
spring:
devtools:
restart:
# 设置热部署生效
enabled: true
# 设置重启的目录
additional-paths: src/main/java
# WEB-INF目录下内容发生更改不重启
exclude: WEB-INF/*
这里记得改一下数据,数据库要改成你自己的,还有账号和密码也要改成你自己的,我们这个配置要配置成如图这样
好,我们现在在运行一下,我们发现出现了这个东西
这个是什么呢?这个是我们导入security后,自动出现的一个密码,这个用什么用的?我们打开网页看看
出现了一个这个界面,当然,还有一个界面比这个好看一点,那个是新版本的界面,但是这个不是重点,重点是这个是什么呢?原来,在我们导入security后,出现的一个拦截网页的东西,需要我们输入账号和密码才可以进去,账号默认是user,密码就是 之前那一串字符(注意是password:后面的字符),之后我们会配置config,让这个界面,消失,但是我们现在先不配,写往后面走。
我们如图所示,建好对应的包
然后我们在static包下面新建一个界面,我们就叫text.html,注意,static文件夹下的界面在一般情况下是可以直接访问的,templates文件夹下面的,是需要通过controller层的控制才可以访问的。
如图所示,我们建立了test界面,然后写上hello,然后我们再来看项目,
注意这个时候我们按ctrl+f9就可以了,不需要重运行项目,因为在之前的配置文件里面我们配置了热部署,然后我们刷新,输入网址,如图所示。
那么,第一部分就完成了,接下来会出第二部分