一、springboot起航

前言

之前零零散散的學習了一些springboot的知識,以及搭建一些springboot的項目,甚至還有一些項目應用到實際項目中了,但是突然有一天想要建一個自己的項目網站。發現自己不知道從何開始。發現自己雖然用了很久,但是讓自己 從頭開始搭建一個卻處處碰壁。所以靜下心來好好的整理一下springboot的知識點。以及給自己搭建一個springboot 項目的腳手架。以後方便自己套用。

創建spring boot項目

springboot的之所以火熱便是因爲開箱即用的特效,低配置甚至無配置使用,方便我們快速上手,我們這裏先就什麼都不配置吧。
在idea 上直接可以創建springboot 類型項目。
在這裏插入圖片描述
項目名就隨便起吧,整個系列就都以這個項目爲例啦,整個項目會分享到github 上,大家需要的可以跟着下載學習。
建好的項目目錄如下:
在這裏插入圖片描述
其中選中的文件夾是我自己加的,因爲我想整個項目的目錄大概就是這個樣子了。文件名起了zlflovemm 沒有什麼項目含義,起名太難了,就起了一個自己紀念的名字,大家勿怪。
我們pom.xml 內容,因爲後期不管是加其他組件,還是引用 jar 包什麼的都是改這裏。所以把最初版本拿出來。

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.1.8.RELEASE</version>
        <relativePath/> <!-- lookup parent from repository -->
    </parent>
    <groupId>com.quellan</groupId>
    <artifactId>zlflovemm</artifactId>
    <version>1.0.0</version>
    <name>zlflovemm</name>
    <description>zlflovemm project for Spring Boot</description>

    <properties>
        <java.version>1.8</java.version>
    </properties>

    <dependencies>
        <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>
            <scope>test</scope>
        </dependency>
    </dependencies>

    <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>
        </plugins>
    </build>

</project>

可以看到pom.xml 文件裏面東西很少了,parent 中是 springboot 版本信息。properties 是 jdk 版本信息。dependencies中的依賴只有一個starter-web 和starter-test 前面是這個項目支持web 項目,後面一個是支持單元測試,這兩個都是創建項目的時候自帶的。build 中就是項目構建打包的方式啦。這裏暫時先用這種方式。

hello world

我們還是來寫一個hello world 吧,雖然有點幼稚,但畢竟遵循一下古訓。
我們在controller 包下創建一個demo 包。在demo 包下創建一個 demo.java .

@RestController
public class Demo {

    @RequestMapping("/")
    public String demo(){
        return "hello world";
    }
}

在這裏插入圖片描述

在controller 層用到的註解最多的就是@RestController 和@RequestMapping 了。@RestController和@Controller 註解是使用在controller層的。和@RequestMapping註解是用於設置映射路徑的。這裏註解就不深入講解了,後面會進行深入的講解。
我們代碼寫完之後,我們來啓動項目看一下,這裏我們就直接運行 ZlflovemmApplication中的 main 方法就好了。然後在瀏覽器輸入

localhost:8080

在這裏插入圖片描述
到此原型已經搭建好了,可以發現我們什麼都沒有配置,都是使用的默認的配置,直接寫的測試代碼,然後就可以直接使用。

但是這樣對於一個項目來說遠遠不夠的,我們來爲項目增加一些配置。

配置mysql

其實一開始就配置mysql 太唐突了,但是一些小配置,不想再起一節,所以就一起了。

準備工作

首先當然是創建數據庫和表啦,這裏idea 也可以連接mysql 數據庫,我們就一切都在idea上操作吧。
在這裏插入圖片描述
配置我們數據庫連接,我這裏已經在我的虛擬機上搭建好了mysql,說到搭建MySQL 也遇到一些坑。沒有整理成單獨的博客,大家可以參考Ubuntu18.04下安裝MySQL
在這裏插入圖片描述
連接好之後,我們執行一下sql ,創建數據庫,創建表,插入數據。

CREATE DATABASE /*!32312 IF NOT EXISTS*/`zlflovemm` /*!40100 DEFAULT CHARACTER SET utf8 */;
USE `zlflovemm`;
CREATE TABLE `sys_user` (
  `id` INT(11) NOT NULL AUTO_INCREMENT,
  `username` VARCHAR(255) NOT NULL,
  `password` VARCHAR(255) NOT NULL,
  `email` VARCHAR(255) NOT NULL,
  `role_code` VARCHAR(255) NOT NULL,
  `role_name` VARCHAR(255) NOT NULL,
  `gmt_create` DATETIME NOT NULL,
  `gmt_update` DATETIME NOT NULL,
  `nickname` VARCHAR(255) DEFAULT NULL,
  `user_create` INT(11) NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=INNODB AUTO_INCREMENT=17 DEFAULT CHARSET=utf8;

/*Data for the table `sys_user` */

INSERT  INTO `sys_user`(`id`,`username`,`password`,`email`,`role_code`,`role_name`,`gmt_create`,`gmt_update`,`nickname`,`user_create`) VALUES (1,'admin','123456','[email protected]','admin','管理員','2019-03-21 14:30:57','2019-03-21 14:30:57','admin',1);

我們測試一下我們數據庫建成功沒有。

select * from sys_user

在這裏插入圖片描述
這樣說明我們數據庫是沒有問題的。

pom.xml 中添加依賴

我們現在pom.xml 中添加依賴

<dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <scope>runtime</scope>
        </dependency>

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-jdbc</artifactId>
        </dependency>

        <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
        </dependency>

前面兩個是mysql 依賴,lombok 是方便我們getter方法和setter方法以及引入日誌的。後面代碼中會體現。

配置application.properties

在application.properties中配置如下

server.port=9090
server.servlet.context-path=/zlflovemm
server.tomcat.uri-encoding=UTF-8
spring.http.encoding.charset=UTF-8
spring.http.encoding.enabled=true
spring.http.encoding.force=true
spring.messages.encoding=UTF-8

spring.datasource.driver-class-name=com.mysql.jdbc.Driver
spring.datasource.url=jdbc:mysql://192.168.252.53:3306/zlfdb?characterEncoding=utf-8&useSSL=false&zeroDateTimeBehavior=CONVERT_TO_NULL
spring.datasource.username=root
spring.datasource.password=123456
spring.datasource.max-idle=10
spring.datasource.max-wait=10000
spring.datasource.min-idle=5
spring.datasource.initial-size=5

前面配置訪問端口爲9090,訪問路徑爲/zllovemm/,設置編碼格式爲utf-8.下面就是配置mysql 。

編寫測試

爲了方便,我們就直接在controller編寫測試。
在controller包中建一個包 userinfo ,在userinfo中創建一個UserController並編寫

@RestController
public class UserController {

    @Autowired
    private JdbcTemplate jdbcTemplate;


    @RequestMapping("/getUser")
    public List<Map<String, Object>> getUser(){
        String sql="select * from sys_user";
        return jdbcTemplate.queryForList(sql);
    }
}

在這裏插入圖片描述
然後我們來啓動項目,在瀏覽器中輸入

http://localhost:9090/zlflovemm/getUser

在這裏插入圖片描述
可以看到數據庫是配置成功的。當然正式的項目肯定不能這樣寫,正式的項目會採用mybatis 或者JPA ,這個後期項目肯定也是會用的,所以這裏就暫時這樣寫。

番外

項目的雛形就先這樣吧,後續加入其它組件,會繼續在這個項目上跟新。
github地址:https://github.com/QuellanAn/zlflovemm

這篇就到這裏吧,也算是開篇了,後續加油♡

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章