eclipse+maven搭建springboot專案入門
阿新 • • 發佈:2018-12-20
開始建立maven專案 選單 -> File -> New -> Other -> Maven -> Maven -> Maven Project -> New Maven Project 勾上這個 Create a simple project (skip archetype selection) group Id 包名 例如 com.svc.demo Artifact Id 專案名 springboot-svc-demo 最終pom.xml如下(mavne是通過pom.xml來維護管理專案的,最終只要維護pom .xml即可)
<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.svc.demo</groupId> <artifactId>springboot-svc-demo</artifactId> <version>0.0.1-SNAPSHOT</version> <packaging>jar</packaging> <!-- <name>springboot-svc-demo</name> <url>http://maven.apache.org</url> --> <!-- 引入springboot parent--> <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>1.5.10.RELEASE</version> <relativePath/> </parent> <!-- 引入springCloud,單獨springboot不需要--> <!-- <dependencyManagement> <dependencies> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-parent</artifactId> <version>Edgware.SR3</version> <type>pom</type> <scope>import</scope> </dependency> </dependencies> </dependencyManagement> --> <properties> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding> <java.version>1.8</java.version> <!--swagger2元件 <springfox-swagger2.version>2.6.0</springfox-swagger2.version> --> <!--格式化mavne時間 <maven.build.timestamp.format>yyyyMMddHHmmss</maven.build.timestamp.format> --> </properties> <!-- 依賴元件--> <dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <!--thymeleaf 模板引擎--> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-thymeleaf</artifactId> </dependency> <!--測試元件--> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-test</artifactId> <scope>test</scope> </dependency> <!--新增html5支援--> <dependency> <groupId>net.sourceforge.nekohtml</groupId> <artifactId>nekohtml</artifactId> </dependency> <!-- 熱啟動,便於開發 <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-devtools</artifactId> <optional>true</optional> </dependency> --> <!--web 元件--> <!-- <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-eureka</artifactId> </dependency> --> <!-- 新增Swagger2依賴,用於生成介面文件 <dependency> <groupId>io.springfox</groupId> <artifactId>springfox-swagger2</artifactId> <version>${springfox-swagger2.version}</version> </dependency> <dependency> <groupId>io.springfox</groupId> <artifactId>springfox-swagger-ui</artifactId> <version>${springfox-swagger2.version}</version> </dependency> --> </dependencies> <build> <plugins> <!--打包外掛--> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> </plugin> <!-- YUI Compressor Maven js,css壓縮外掛 --> <plugin> <groupId>net.alchim31.maven</groupId> <artifactId>yuicompressor-maven-plugin</artifactId> <version>1.5.1</version> <executions> <execution> <phase>prepare-package</phase> <goals> <goal>compress</goal> </goals> </execution> </executions> <configuration> <!-- 讀取js,css檔案採用UTF-8編碼預設就是utf-8 --> <encoding>UTF-8</encoding> <!-- 不顯示js可能的錯誤 --> <jswarn>false</jswarn> <!-- 若存在已壓縮的檔案,會先對比原始檔是否有改動 有改動便壓縮,無改動就不壓縮 --> <force>true</force> <!-- 在指定的列號後插入新行 --> <linebreakpos>-1</linebreakpos> <!-- 壓縮之前先執行聚合檔案操作 --> <preProcessAggregates>true</preProcessAggregates> <!-- 壓縮後儲存檔案字尾 無後綴 --> <nosuffix>true</nosuffix> <!-- 源目錄,即需壓縮的根目錄 --> <sourceDirectory>src/main/static</sourceDirectory> <outputDirectory>target/classes</outputDirectory> <force>true</force> <!-- 壓縮js和css檔案 --> <includes> <include>*/js/**/*.js</include> <include>*/css/**/*.css</include> </includes> <excludes> <exclude>**/*.min.js</exclude> <exclude>**/*-min.js</exclude> <exclude>**/index/carousel.js</exclude> <exclude>**/3dprint/layer/**/*.js</exclude> </excludes> </configuration> </plugin> <!-- html頁面中的 css,js新增版本號外掛 --> <!--plugin> <groupId>com.google.code.maven-replacer-plugin</groupId> <artifactId>replacer</artifactId> <version>1.5.3</version> <executions> <execution> <phase>prepare-package</phase> <goals> <goal>replace</goal> </goals> </execution> </executions> <configuration> <includes> <include>${basedir}/target/classes/templates/*.html</include> <include>${basedir}/target/classes/templates/**/*.html</include> </includes> <replacements> <replacement> <token>\.css\"</token> <value>.css?v=${maven.build.timestamp}\"</value> </replacement> <replacement> <token>\.css\'</token> <value>.css?v=${maven.build.timestamp}\'</value> </replacement> <replacement> <token>\.js\"</token> <value>.js?v=${maven.build.timestamp}\"</value> </replacement> <replacement> <token>\.js\'</token> <value>.js?v=${maven.build.timestamp}\'</value> </replacement> </replacements> </configuration> </plugin--> </plugins> </build> </project>
建立啟動入口以及專案結構
@SpringBootApplication
public class Application extends SpringBootServletInitializer
{
public static void main(String[] args)
{
SpringApplication.run(Application.class, args);
}
}
├── clean-run.sh ├── logs/ 日誌檔案目錄 │ ├── sb2-web_test_2018-06-02_0959.0.log │ └── sb2-web_test.log | ├── mvnw ├── mvnw.cmd ├── pom.xml ├── pysrc/ python 指令碼目錄 ├── README.md ├── src/ 原始檔目錄 │ ├── main │ │ ├── java │ │ │ └── com │ │ │ └── mydomain │ │ │ ├── guru/ 工具包目錄 │ │ │ │ ├── AccountValidator.java │ │ │ │ ├── DateConverter.java │ │ │ │ ├── JsonBeanUtil.java │ │ │ │ ...... │ │ │ └── webapi/ web 介面目錄 │ │ │ ├── Application.java │ │ │ ├── config/ sb2 app 配置檔案目錄 │ │ │ │ ├── CORSFilter.java │ │ │ │ ├── JwtAuthenticationEntryPoint.java │ │ │ │ ├── JwtAuthenticationFilter.java │ │ │ │ ├── WebMvcConfig.java │ │ │ │ ├── WebSecurityConfig.java │ │ │ │ └── ...... │ │ │ ├── controller/ 控制器目錄 │ │ │ │ ├── AuthenticationController.java │ │ │ │ ├── KaptchaController.java │ │ │ │ └── UserController.java │ │ │ ├── dao/ DAO 目錄 (或者稱為:repository) │ │ │ │ ├── KaptchaTokenDao.java │ │ │ │ └── UserDao.java │ │ │ ├── model/ Model 目錄 (繫結資料表) │ │ │ │ ├── AuthToken.java │ │ │ │ ├── Constants.java │ │ │ │ ├── dto/ DTO 資料傳輸元件目錄 │ │ │ │ │ ├── KaptchaTokenDto.java │ │ │ │ │ └── UserDto.java │ │ │ │ ├── KaptchaToken.java │ │ │ │ ├── LoginUser.java │ │ │ │ ├── Role.java │ │ │ │ └── User.java │ │ │ └── service/ 服務介面目錄 │ │ │ ├── impl/ 服務介面實現目錄 │ │ │ │ ├── KaptchaTokenServiceImpl.java │ │ │ │ └── UserServiceImpl.java │ │ │ ├── KaptchaTokenService.java │ │ │ └── UserService.java │ │ └── resources/ 資源總目錄 │ │ ├── application-dev.properties 開發配置 │ │ ├── application-prod.properties 產品配置 │ │ ├── application.properties 當前配置 │ │ ├── application-test.properties 測試配置 │ │ ├── kaptcha.properties 圖片驗證碼配置 │ │ ├── logback-spring.xml 日誌檔案配置 │ │ ├── mysql-webapi.cresql 資料庫建立語句 │ │ └── templates/ web 模板目錄 │ │ │ ├── user/ │ │ │ ├── login.html │ │ │ ...... │ │ ├── static/ 靜態資源目錄 │ │ ├── bootstrap-4.1.0/ │ │ │ ├── css/ │ │ │ │ ├── bootstrap.css │ │ │ │ ├── bootstrap.css.map │ │ │ │ ├── bootstrap-grid.css │ │ │ │ ├── bootstrap-grid.css.map │ │ │ │ ├── bootstrap-grid.min.css │ │ │ │ ├── bootstrap-grid.min.css.map │ │ │ │ ├── bootstrap.min.css │ │ │ │ ├── bootstrap.min.css.map │ │ │ │ ├── bootstrap-reboot.css │ │ │ │ ├── bootstrap-reboot.css.map │ │ │ │ ├── bootstrap-reboot.min.css │ │ │ │ └── bootstrap-reboot.min.css.map │ │ │ └── js │ │ │ ├── bootstrap.bundle.js │ │ │ ├── bootstrap.bundle.js.map │ │ │ ├── bootstrap.bundle.min.js │ │ │ ├── bootstrap.bundle.min.js.map │ │ │ ├── bootstrap.js │ │ │ ├── bootstrap.js.map │ │ │ ├── bootstrap.min.js │ │ │ └── bootstrap.min.js.map │ │ ├── css │ │ │ └── common.css │ │ └── js │ │ └── jquery │ │ ├── jquery-1.11.2.min.js │ │ └── jquery.min.map │ └── test │ └── java │ └── com │ └── yourdomain │ └── webapi/ │ ├── ApplicationTests.java │ └── UserDocumentationTests.java 自動文件生成測試 └── update-build.sh 原始檔自動版本更新指令碼