从零开始搭建springboot项目 第一部分

本人大二双非软件工程本科生,疫情期间在家无聊搭建了几个spring-boot项目,搭建的时候也出过许多问题,也感谢百度上面的大佬,和各种群里面的大佬的耐心指点,今天我抱着巩固知识,也是造福各位才开始学spring-boot的同学们的想法(大佬除外)写下这篇博客,写的不好请指出了,但是不要骂我,谢谢,话不多说,我们开始搭建spring-boot项目

搭建所需

1 idea
2 maven
3 tomcat

第一步:新建文件

首先我们需要新建一个project
在这里插入图片描述
点击左上角的file->new->project
从零开始搭建springboot项目 第一部分_第1张图片
选中spring initializr,然后点击next
从零开始搭建springboot项目 第一部分_第2张图片
把java version改成 8,后面有需要选中的依赖,我们这里先都不选,到后面我们再去配置,最后路径选择选中自己想要的路径就可以了,这里就不展示我的路径了。

第二步: 导入依赖
从零开始搭建springboot项目 第一部分_第3张图片
当项目新建好后,在右下角会出现这个提示,我们点击import changes,idea会自动给我们导入,这里第一次建立spring-boot的朋友可能需要等一会,笔者第一次建立spring-boot项目的时候足足等了一分多钟。

从零开始搭建springboot项目 第一部分_第4张图片

导入jar包完成后,点击external libraries,会出现一堆如图所示的jar包,这里不用管他们

第三部: 导入依赖
这里我们需要导入依赖了,点击pom文件,我们开始导入依赖(注意,笔者这里文件爆红是因为有git,没有git的朋友们是不会这样显示红色的)
从零开始搭建springboot项目 第一部分_第5张图片


 <dependency>
            <groupId>org.springframework.bootgroupId>
            <artifactId>spring-boot-starter-webartifactId>
 dependency>

这个依赖是用来打开网页的,如果没有这个依赖就无法打开网页,将此依赖复制到pom.xml的depandencies标签里面。

从零开始搭建springboot项目 第一部分_第6张图片
如图所示,点击绿色按钮,当然,你也可以直接点击右上角的绿色按钮,之所以要你点这里,是要你知道springboot项目的启动都是从这里,所以这个类可不要去删,如果你的java包还有resource包不是如图所示的颜色,而是灰色,那么你需要这么做。

从零开始搭建springboot项目 第一部分_第7张图片
在没有变成在种颜色的图标上面右键,选中mark directory,按照颜色选择,
但是一般来说都不会出现这样的问题。

现在我们测试一下,点击按钮我们会看见控制台出现一大堆话
从零开始搭建springboot项目 第一部分_第8张图片
如果是这样的,那么恭喜你,离成功又进了一步,图中大框框起来的文字是可以自己修改的,虽然并没有什么屁用,但是可能有些人看的舒服,那么在这里教大家改一下。
在这里插入图片描述
我们只要在resources文件夹下面新建一个banner.txt文件,在里面输入自己想要的字符,然后在运行就可以了,如果失败了,可以重启idea在运行一下,需要什么图片去这个网站去取就可以了
取图片网站
笔者这里取了个如来佛祖,保佑无bug,hhhh
从零开始搭建springboot项目 第一部分_第9张图片
最后的样子是这样的
从零开始搭建springboot项目 第一部分_第10张图片
扯远了,我们运行项目,进入浏览器,输入网址:http://localhost:8080/
然后出现这样的画面
从零开始搭建springboot项目 第一部分_第11张图片这就说明已经成功, 报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去搜索关键字,看一下这些依赖,这里就不给大家展示了,现在介绍一下这些依赖的作用

  1. mybatis:不用多说,用来连接数据库
  2. lombok:创建实体类的时候可以用简单的注释省略创造构造方法,以及get,set方法,这里选择性导入,当然,个人觉得可以导入,使用方法如下从零开始搭建springboot项目 第一部分_第12张图片
    @Date 省略写get,set方法
    @AllArgsConstructor 省略构造方法
    @NoArgsConstructor 省略空构造方法
  3. 阿里druid:让我们直观感受 sql,调用的方法,还有访问 uri 等各方面的情况
  4. security:类似于拦截器
  5. thymeleaf:一个现代服务器端Java模板引擎,可以读取后端传入的数值然后在前端显示

当导入玩全部的依赖后,我们在运行试一下,记得点击右下角的import changes
从零开始搭建springboot项目 第一部分_第13张图片
如图所示,报错了,这是为什么呢?原来是导入了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/*

这里记得改一下数据,数据库要改成你自己的,还有账号和密码也要改成你自己的,我们这个配置要配置成如图这样
在这里插入图片描述
好,我们现在在运行一下,我们发现出现了这个东西
从零开始搭建springboot项目 第一部分_第14张图片
这个是什么呢?这个是我们导入security后,自动出现的一个密码,这个用什么用的?我们打开网页看看
从零开始搭建springboot项目 第一部分_第15张图片
出现了一个这个界面,当然,还有一个界面比这个好看一点,那个是新版本的界面,但是这个不是重点,重点是这个是什么呢?原来,在我们导入security后,出现的一个拦截网页的东西,需要我们输入账号和密码才可以进去,账号默认是user,密码就是 之前那一串字符(注意是password:后面的字符),之后我们会配置config,让这个界面,消失,但是我们现在先不配,写往后面走。
从零开始搭建springboot项目 第一部分_第16张图片
我们如图所示,建好对应的包
然后我们在static包下面新建一个界面,我们就叫text.html,注意,static文件夹下的界面在一般情况下是可以直接访问的,templates文件夹下面的,是需要通过controller层的控制才可以访问的。
从零开始搭建springboot项目 第一部分_第17张图片
如图所示,我们建立了test界面,然后写上hello,然后我们再来看项目,
注意这个时候我们按ctrl+f9就可以了,不需要重运行项目,因为在之前的配置文件里面我们配置了热部署,然后我们刷新,输入网址,如图所示。
从零开始搭建springboot项目 第一部分_第18张图片

那么,第一部分就完成了,接下来会出第二部分

你可能感兴趣的:(springboot,java,spring,mybatis,intellij,idea)