当前位置: 首页 > news >正文

南宁百度网站建设公司哪家好企业如何进行宣传和推广

南宁百度网站建设公司哪家好,企业如何进行宣传和推广,手机端web页面,临沂个人做网站文章目录 1.问题描述:2.解决方案一、创建聚合父工程二、创建子模块(module)三、编写子模块代码1.模块1(demo-one)2.模块2(demo-tow) 四、创建聚合模块 (demo-starter)1. …

文章目录

  • 1.问题描述:
  • 2.解决方案
    • 一、创建聚合父工程
    • 二、创建子模块(module)
    • 三、编写子模块代码
      • 1.模块1(demo-one)
      • 2.模块2(demo-tow)
    • 四、创建聚合模块 (demo-starter)
      • 1. starter聚合模块pom配置 (依赖子模块很重要)
    • 五、打包测试
    • 六、最后的最后 测试一下效果

1.问题描述:

最近遇到个需求,针对后端解耦模块较多的项目,想在云端启动时简洁些只启动一个jar文件的情景。
1)解耦较细多个子module一个项目下
2)只想打到一个包启动一次
3)原解耦架构不想打破、不想重构

2.解决方案

针对此问题spring原生自带处理方式,下面写个demo

一、创建聚合父工程

1.首先使用 Spring Initializr 来快速创建好一个Maven工程。然后删除无关的文件,只需保留pom.xml 文件。这里命名 demo-Project。
在这里插入图片描述
2.然后在 pom.xml 里面声明该父工程包含的子模块。(其它信息就不逐一讲述了,诸如继承SpringBoot官方父工程以及统一依赖管理 请查看下面的注释说明)

<?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.7.16</version><relativePath/> <!-- lookup parent from repository --></parent><packaging>pom</packaging><groupId>com.example</groupId><artifactId>demo-Project</artifactId><version>0.0.1-SNAPSHOT</version><name>demo-Project</name><description>demo-Project</description><modules><module>demo-starter</module><module>demo-one</module><module>demo-tow</module></modules><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>

二、创建子模块(module)

分别调整它们的pom.xml 以继承上面的父工程。
例如demo-one模块的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 https://maven.apache.org/xsd/maven-4.0.0.xsd"><modelVersion>4.0.0</modelVersion><parent><groupId>com.example</groupId><artifactId>demo-Project</artifactId><version>0.0.1-SNAPSHOT</version><relativePath>../pom.xml</relativePath></parent><groupId>com.example</groupId><artifactId>demo-one</artifactId><version>0.0.1-SNAPSHOT</version><name>demo-one</name><description>demo-one</description><properties><java.version>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><dependency><groupId>org.projectlombok</groupId><artifactId>lombok</artifactId></dependency></dependencies><!--    <build>-->
<!--        <plugins>-->
<!--            <plugin>-->
<!--                <groupId>org.springframework.boot</groupId>-->
<!--                <artifactId>spring-boot-maven-plugin</artifactId>-->
<!--            </plugin>-->
<!--        </plugins>-->
<!--    </build>--></project>

三、编写子模块代码

在这里插入图片描述
注:正常是控制层、业务层、数据层等的解耦,目前是简单多业务架构模式假设每模块里都有自己的service、entity、repo、service等层次代码只是demo简单写了。

1.模块1(demo-one)

启动类 :DemoOneApplication.java (demo-one)

package com.example.demoone;import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;@SpringBootApplication
public class DemoOneApplication {public static void main(String[] args) {SpringApplication.run(DemoOneApplication.class, args);}}

控制器:ConTeone.java (demo-one)

package com.example.demoone.controler;import com.example.demoone.bean.User;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RestController;@RestController
public class ConTeone {@AutowiredUser user;@PostMapping("/contest1")public String test1(){return "test1";}@PostMapping("/contest1/onebean")public User test2(){return user;}
}

javabean User类:

package com.example.demoone.bean;import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import lombok.Data;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.context.annotation.Configuration;
import org.springframework.stereotype.Component;import java.io.Serializable;@Data
@Component
@ConfigurationProperties(prefix = "user")
@JsonSerialize
public class User{String username;String password;
}

配置文件:application.yml (demo-one)

server:port: 8081user:username: adminpassword: admin
spring:profiles:active: true

2.模块2(demo-tow)

启动类 :DemoTowApplication.java (demo-tow)

package com.example.demotow;import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;@SpringBootApplication
public class DemoTowApplication {public static void main(String[] args) {SpringApplication.run(DemoTowApplication.class, args);}}

控制器:Contest.java (demo-tow)

package com.example.demotow.controler;import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RestController;@RestController
public class Contest {@PostMapping("/contest2")public String testTow(){return "test2";}
}

配置文件:application.yml (demo-tow) 这个不配了没写特殊的东西,只是在demo-one里写了从yml配置好做演示。

四、创建聚合模块 (demo-starter)

创建聚合模块 它的pom.xml 以继承上面的父工程。代码为普通的spring-web的项目即可,拥有初始的 启动类即可。但是启动类需要开启包路径扫描。
要求:
1)开启包扫描;
2)要继承 子模块demo-one、demo-tow;
3)要有打包插件配置 spring-boot-maven-plugin;
4)其他子模块需要去掉打包插件 这很重要。

1. starter聚合模块pom配置 (依赖子模块很重要)

下图依赖了两个子模块。
在这里插入图片描述
下图的打包配置,最简单的配置即可,当然看项目而定 有复杂需求按自己实际配置即可。
在这里插入图片描述

<?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.7.16</version><relativePath/> <!-- lookup parent from repository --></parent><groupId>com.example</groupId><artifactId>demo-starter</artifactId><version>0.0.1-SNAPSHOT</version><name>demo-starter</name><description>demo-starter</description><properties><java.version>1.8</java.version></properties><dependencies><dependency><groupId>com.example</groupId><artifactId>demo-one</artifactId><version>0.0.1-SNAPSHOT</version></dependency><dependency><groupId>com.example</groupId><artifactId>demo-tow</artifactId><version>0.0.1-SNAPSHOT</version></dependency><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>

2.starter聚合模块开启包扫描 (很重要)
在这里插入图片描述
特别注意:如果子模块包路径和启动类的根路径一致,不加上述注解也可,我这就是一样的但是为了演示所以还是配置了。

五、打包测试

万事俱备直接打包测试即可了。

在父pom的项目路径下打包

mvn clean package

在这里插入图片描述

打出来的包 在 demo-starter所在的路径里,当然运行 install 在本地仓库找也可;发布制品库的话直接发布上去的也是 demo-starter;
在这里插入图片描述

六、最后的最后 测试一下效果

启动 demo-starter

java -jar .\demo-starter-0.0.1-SNAPSHOT.jar

在这里插入图片描述
demo-one的 返回User的接口
在这里插入图片描述
demo-one 的返回string的接口
在这里插入图片描述
demo-tow的返回string的接口
在这里插入图片描述

http://www.15wanjia.com/news/19143.html

相关文章:

  • 专业网站定制团队佛山快速排名
  • 厦门seo排名公司如何进行网站性能优化?
  • 做头条信息流要网站吗怎么做网站免费的
  • iapp网站做软件教程seo快速排名多少钱
  • 做网站推广排名上海seo优化公司bwyseo
  • wordpress关闭评论窗口百色seo快速排名
  • 网站管理后台下载南昌百度快速排名提升
  • 创意图案设计网站sem工作原理
  • 给了几张图让做网站seo入门培训课程
  • 用手机搭建自己的网站网络seo优化公司
  • 网站内容建设方案网络营销和推广的方法
  • 企业门户网站武汉网站营销seo方案
  • 青岛仿站定制模板建站营销网站类型
  • 我做的网站打开慢怎么处理最好的小说网站排名
  • 申论政府建设网站seo教程自学网
  • wordpress站长之家关键词优化包含
  • 中文域名转换英文域名网站内部seo优化包括
  • 网站建设工作室图片网易疫情实时最新数据
  • 网站流量达到多少网络营销的期末试题及答案
  • 网站备案流程公安阜平网站seo
  • 知名的网站建设公司营业推广是一种什么样的促销方式
  • 如何做jquery音乐网站网站源码
  • 常德天鹰建设有限公司网站泉州全网推广
  • b2b门户网站北京网站优化平台
  • 东莞百度推广排名网站seo视频狼雨seo教程
  • 吴兴区建设局网站凡科建站手机版登录
  • 网站建设i rsky站长统计app软件下载2021
  • 站长之家域名查询大全口碑营销方案
  • 网站外链接自己可以怎么做济南seo优化公司助力网站腾飞
  • 莱芜网站建设服务win10优化