自我救贖 → 利用 IDEA 和 Spring Boot 搭建 SSM

前言

  開心一刻html

    兒子讀高中放學回來了,一貫無論他學習的我忽然來了興趣,想看看他的學習他的情況,抄起他的數學習題看了起來,當看到 1 x 2 x 3 x 4 x 5 x 6 x 7 x 8 x 9 x 10 = 10! 我當時火冒三丈,一巴掌就呼過去了,怒吼道:你這是怎麼讀的,1乘以2乘以3乘以...10怎麼等於10! 旁邊的媳婦一平底鍋甩我臉上:不等於10的階乘,那等於多少?我:這不是感嘆號嗎?java

寫做背景

  關於 ssm 的基礎篇,我一共寫了三篇博客:mysql

  利用maven/eclipse搭建ssm(spring+spring mvc+mybatis)git

    搭建 ssm 比較簡單,eclipse 配置好 maven,工程中配置好相關配置文件便可;可是此種方式已過期,包括eclipse、spring4.0.二、ssm的搭建方式(pom中配置的依賴太多),再也不推薦此種方式。github

  關於利用maven搭建ssm的博客,咱們一塊兒來探討下問的最多的問題web

    根據你們搭建 ssm 過程當中遇到的問題,總結出了此篇,主要是針對數據綁定的問題進行了詳細的說明;內容不過時,推薦仔細看看。spring

  Spring MVC的工做原理,咱們來看看其源碼實現sql

    由問題:Spring mvc 是什麼時候、何地、如何將Model中的屬性綁定到哪一個做用域 引起的 Spring MVC 的工做原理的探索,隨着 Spring 版本的變遷,Spring MVC 或許會有少量的改動,但其核心不會變,推薦仔細看看。apache

  近來,仍是陸陸續續收到一些剛入門的小夥伴的求助,利用maven/eclipse搭建ssm仍是會出現各類各樣的問題,關鍵是我在幫忙解決的過程當中居然發現我不太會用 eclipse 了, 並且 spring 的版本仍是 4,我就問他們了:大家怎麼還在用 eclipse,spring的版本爲何那麼低? 結果我獲得一個統一的回答:我是參考的你的博客搭建的。安全

  此刻我意識到了這是個人問題:隨着時間的流逝,我沒有及時的更新個人博客 → 利用maven/eclipse搭建ssm(spring+spring mvc+mybatis),致使不少剛入門的小夥伴看到的是過期的內容,誤人子弟實乃大罪過!因此我趕忙寫了此篇,指正當前正確的方向。一段時間後,此篇博文涉將的內容也會過期,因此你們最好能本身抓住當下主流的內容。

  目前公司用的是 idea + spring boot 實現的工程搭建,也是當下最流行的方式,下面我也就演示下如何利用 idea 和 spring boot 搭建 ssm工程。

IDEA

  IDEA 全稱 IntelliJ IDEA,具體它是什麼,有什麼用,怎麼用 等等關於 IDEA 的內容,你們自行去查閱,我就不作囉嗦了。可參考:IDEA 使用教程(持續更新,19年6月14號更新)

  推薦你們用最新的 IDEA 版本,有能力的請支持正版

  只強調一點:maven 設置

    maven的更多內容你們自行去查閱資料,maven 的安裝可參考利用maven/eclipse搭建ssm(spring+spring mvc+mybatis),推薦用最新的;安裝好maven以後,推薦配置上阿里的鏡像,在 maven 的配置文件 settings.xml 中的 mirrors 節點下新增以下 mirror 節點

<mirror>
    <id>alimaven</id>
    <name>aliyun maven</name>
    <url>http://maven.aliyun.com/nexus/content/groups/public/</url>
    <mirrorOf>central</mirrorOf> 
</mirror>

    maven安裝好後,須要在 idea 中配置好 maven,配置過程很簡單,以下圖所示

    這樣 idea 集成 maven 就成功了

Spring Boot

  關於 Spring Boot 的詳細信息,你們能夠去它的官方文檔看,也能夠看園子內大佬的博客,推薦:Spring boot 入門篇 

  Spring Boot 是由 Pivotal 團隊提供的全新框架,但不是 Spring 的替代品,而是 Spring 的衍生品,目的是用來簡化新 Spring 應用的初始搭建以及開發過程;它採用了約定大於配置的作法,默認配置了不少框架的使用方式,就像 Maven 整合了全部的 Jar 包,Spring Boot 整合了全部的框架,同時 Spring Boot 採用 Starters 的方式簡化了工程的 maven 依賴配置。

  目前 Spring Boot 的最新的發佈版本是 2.1.6 ,咱們不採用它,咱們用 2.1.0 這個發佈了有一段時間的版原本演示

SSM 搭建

  咱們能夠直接下載官網的樣例,而後導入到 idea,這是一種方式,但我仍是想給你們演示一個完整的從無到有的過程

  工程搭建

    方式不少種,我獨愛白的像一張紙同樣的初始配置

  配置 maven 依賴

    pom.xml

<?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 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>

    <groupId>com.lee</groupId>
    <artifactId>ssm</artifactId>
    <version>1.0-SNAPSHOT</version>

    <properties>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <encoding>UTF-8</encoding>
        <java.version>1.8</java.version>
        <maven.compiler.source>1.8</maven.compiler.source>
        <maven.compiler.target>1.8</maven.compiler.target>
        <pagehelper.version>1.2.5</pagehelper.version>
        <druid.version>1.1.10</druid.version>
    </properties>

    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.1.0.RELEASE</version>
    </parent>

    <dependencies>

        <!-- web -->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-thymeleaf</artifactId>
        </dependency>

        <!-- mybatis相關 -->
        <dependency>
            <groupId>com.github.pagehelper</groupId>
            <artifactId>pagehelper-spring-boot-starter</artifactId>
            <version>${pagehelper.version}</version>
        </dependency>
        <dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>druid-spring-boot-starter</artifactId>
            <version>${druid.version}</version>
        </dependency>
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
        </dependency>
    </dependencies>
</project>
View Code

  工程配置

    application.yml

server: port: 8888 servlet: context-path: /ssm spring: #鏈接池配置 datasource: type: com.alibaba.druid.pool.DruidDataSource druid: driver-class-name: com.mysql.cj.jdbc.Driver url: jdbc:mysql://localhost:3306/mybatis?useSSL=false&useUnicode=true&characterEncoding=utf-8&serverTimezone=UTC username: root password: 123456 initial-size: 1 #鏈接池初始大小 max-active: 20 #鏈接池中最大的活躍鏈接數 min-idle: 1 #鏈接池中最小的活躍鏈接數 max-wait: 60000 #配置獲取鏈接等待超時的時間 pool-prepared-statements: true #打開PSCache,而且指定每一個鏈接上PSCache的大小 max-pool-prepared-statement-per-connection-size: 20 validation-query: SELECT 1 FROM DUAL validation-query-timeout: 30000 test-on-borrow: false #是否在得到鏈接後檢測其可用性 test-on-return: false #是否在鏈接放回鏈接池後檢測其可用性 test-while-idle: true #是否在鏈接空閒一段時間後檢測其可用性 #mybatis配置 mybatis: type-aliases-package: com.entity #config-location: classpath:mybatis/mybatis-config.xml mapper-locations: classpath:mapper/*.xml # pagehelper配置 pagehelper: helperDialect: mysql #分頁合理化,pageNum<=0則查詢第一頁的記錄;pageNum大於總頁數,則查詢最後一頁的記錄 reasonable: true supportMethodsArguments: true params: count=countSql
View Code

  完整工程

    java文件夾下的內容,包括 conroller、service、mapper、dao 以及 SsmApplication就不逐一展現了,更多詳細代碼請看:ssm

   實現效果

總結

  不是說過期的東西不能用,而是不推薦用,效率是一方面,安全也是一方面,保不許過期的內容會在後續哪一個版本就直接剔除了,那就是真的不能用了;當下 java web 的熱門開發工具就是 IDEA(不只僅只是java哦),熱門框架就是 Spring Boot,當下流行不保證一直流行,咱們須要保持一顆學習的心,多關注時下的熱門技術。

參考

  SpringBoot入門教程(一)詳解intellij idea搭建SpringBoot

  Spring boot 入門篇

相關文章
相關標籤/搜索