開心一刻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 是什麼時候、何地、如何將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 全稱 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 是由 Pivotal 團隊提供的全新框架,但不是 Spring 的替代品,而是 Spring 的衍生品,目的是用來簡化新 Spring 應用的初始搭建以及開發過程;它採用了約定大於配置的作法,默認配置了不少框架的使用方式,就像 Maven 整合了全部的 Jar 包,Spring Boot 整合了全部的框架,同時 Spring Boot 採用 Starters 的方式簡化了工程的 maven 依賴配置。
目前 Spring Boot 的最新的發佈版本是 2.1.6 ,咱們不採用它,咱們用 2.1.0 這個發佈了有一段時間的版原本演示
咱們能夠直接下載官網的樣例,而後導入到 idea,這是一種方式,但我仍是想給你們演示一個完整的從無到有的過程
方式不少種,我獨愛白的像一張紙同樣的初始配置
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>
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
java文件夾下的內容,包括 conroller、service、mapper、dao 以及 SsmApplication就不逐一展現了,更多詳細代碼請看:ssm
不是說過期的東西不能用,而是不推薦用,效率是一方面,安全也是一方面,保不許過期的內容會在後續哪一個版本就直接剔除了,那就是真的不能用了;當下 java web 的熱門開發工具就是 IDEA(不只僅只是java哦),熱門框架就是 Spring Boot,當下流行不保證一直流行,咱們須要保持一顆學習的心,多關注時下的熱門技術。