欢迎访问昆山宝鼎软件有限公司网站! 设为首页 | 网站地图 | XML | RSS订阅 | 宝鼎邮箱 | 后台管理


新闻资讯

MENU

软件开发知识
原文出处: 晴枫

在前面两章 SpringBoot入门 、SpringBoot自动设置道理 的进修后,我们对如何建设一个 SpringBoot 项目、SpringBoot 的运行道理以及自动设置等都有了必然的相识。假如我们系统中也想要拥有自动设置的成果,可以本身编写一个starter (启动器),想想就以为很酷,因为这意味着我们不只有本身界说的自动配的成果,并且具有更通用的耦合度更低的设置。

照旧以第一章开头的简朴成果为例:欣赏器发送 sayHello 请求,处事器接管请求并处理惩罚,响应 Hello 。

首先我们看下工程布局:

在 application.propert  <a href=昆山软件定制开拓 ies 中设置 hello.msg 属性时" class="aligncenter size-full wp-image-30611" title="springboot-3-1" src="/uploads/allimg/c181123/154291D13RJ0-13325.png" />

helloworld-spring-boot-starter-autoconfigure(以下简称autoconfigure):该模块用来实现 Helloworld 的自动设置成果,昆山软件开发,它的打包方法为 jar;

helloworld-spring-boot-starter(以下简称starter):该模块的打包方法是 jar,依赖 autoconfigure 模块,它不写任何代码,只做自动设置包的自动引入,假如要利用 helloworld 自动设置成果,只要在 pom 文件中引入 starter 模块即可:

<dependency>
    <groupId>com.seagetech.spring.boot</groupId>
    <artifactId>helloworld-spring-boot-starter</artifactId>
    <version>0.0.1-SNAPSHOT</version>
</dependency>

1 项目工程的建设

1.1 建设Empty Project

1) 新建一个空的项目,如下图,点击Next

在 application.propert  <a href=昆山软件定制开拓 ies 中设置 hello.msg 属性时" class="aligncenter size-large wp-image-30612" title="springboot-3-2" src="/uploads/allimg/c181123/154291D13WC0-25209.png" />

2) 输入项目名称以及选择项目存放路径,点击Finish

在 application.propert  <a href=昆山软件定制开拓 ies 中设置 hello.msg 属性时" class="aligncenter size-large wp-image-30613" title="springboot-3-3" src="/uploads/allimg/c181123/154291D1393410-33059.png" />

1.2 建设starter模块

1) 在1.1节中新建的空项目基本上新建一个Module

在 application.propert  <a href=昆山软件定制开拓 ies 中设置 hello.msg 属性时" class="aligncenter size-full wp-image-30614" title="springboot-3-4" src="/uploads/allimg/c181123/154291D139D20-4T19.png" />

2) 选择Maven,点击Next

在 application.propert  <a href=昆山软件定制开拓 ies 中设置 hello.msg 属性时" class="aligncenter size-large wp-image-30615" title="springboot-3-5" src="/uploads/allimg/c181123/154291D1400430-5E11.png" />

3) 输入GroupId、ArtifactId 和 Version 信息,点击Finish

在 application.propert  <a href=昆山软件定制开拓 ies 中设置 hello.msg 属性时" class="aligncenter size-large wp-image-30616" title="springboot-3-6" src="/uploads/allimg/c181123/154291D1405410-CT5.png" />

4) 由于这个模块只做自动设置包的引入,所有删除 src 下的包,最终项目布局如下:

在 application.propert  <a href=昆山软件定制开拓 ies 中设置 hello.msg 属性时" class="aligncenter size-full wp-image-30617" title="springboot-3-7" src="/uploads/allimg/c181123/154291D14113Z-L122.png" />

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.seagetech.spring.boot</groupId>
    <artifactId>helloworld-spring-boot-starter</artifactId>
    <version>1.0-SNAPSHOT</version>
</project>

1.3 建设 autoconfigure 模块

1) 按1.2节第1步,新建一个 Module,并选择 Spring Initializr,点击Next

在 application.propert  <a href=昆山软件定制开拓 ies 中设置 hello.msg 属性时" class="aligncenter size-large wp-image-30618" title="springboot-3-8" src="/uploads/allimg/c181123/154291D14130-U4N.png" />

2) 输入项目相关信息,如下图所示:

在 application.propert  <a href=昆山软件定制开拓 ies 中设置 hello.msg 属性时" class="aligncenter size-large wp-image-30619" title="springboot-3-9" src="/uploads/allimg/c181123/154291D141G40-93926.png" />

3) 选择依赖,我们这里只选择web场景的依赖,点击Next

在 application.propert  <a href=昆山软件定制开拓 ies 中设置 hello.msg 属性时" class="aligncenter size-large wp-image-30620" title="springboot-3-10" src="/uploads/allimg/c181123/154291D1426060-101c9.png" />

4) 默认,不需要窜改,点击Finish

在 application.propert  <a href=昆山软件定制开拓 ies 中设置 hello.msg 属性时" class="aligncenter size-large wp-image-30621" title="springboot-3-11" src="/uploads/allimg/c181123/154291D1431120-115922.png" />

4) 删除 SpringBoot 自动建设的主设置类、resources 下所有文件(夹)以及 test 文件夹,劳务派遣管理系统,最终项目布局如下:

在 application.propert  <a href=昆山软件定制开拓 ies 中设置 hello.msg 属性时" class="aligncenter size-full wp-image-30622" title="springboot-3-12" src="/uploads/allimg/c181123/154291D14354P-126417.png" />

pom.xml(已删除 test 测试模块的自动设置包以及 build 下的 Maven 插件)

<?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.seagetech.spring.boot</groupId>
   <artifactId>helloworld-spring-boot-starter-autoconfigure</artifactId>
   <version>0.0.1-SNAPSHOT</version>
   <packaging>jar</packaging>

   <name>helloworld-spring-boot-starter-autoconfigure</name>
   <description>Demo project for Spring Boot</description>

   <parent>
      <groupId>org.springframework.boot</groupId>
      <artifactId>spring-boot-starter-parent</artifactId>
      <version>2.1.0.RELEASE</version>
      <relativePath/> <!-- lookup parent from repository -->
   </parent>

   <properties>
      <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
      <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
      <java.version>1.8</java.version>
   </properties>

   <dependencies>
      <dependency>
         <groupId>org.springframework.boot</groupId>
         <artifactId>spring-boot-starter-web</artifactId>
      </dependency>
   </dependencies>
</project>