sunrays-framework(太阳射线框架搭建)

文章目录

    • 1.基本环境搭建
        • 1.创建项目sunrays-framework
        • 2.新增忽略文件
        • 3.删除src目录
        • 4.交给Git管理
    • 2.sunrays-dependencies模块:统一管理依赖
        • 1.创建模块
        • 2.不要交给父模块管理,这是独立的!!!
        • 3.删除src目录
        • 4.pom.xml统一管理版本和通用配置
    • 3.sunrays-demo模块:测试
        • 1.创建模块
        • 2.修改pom.xml继承sunrays-dependencies的版本和通用依赖
        • 3.引入web依赖,进行测试
        • 4.多环境测试
          • 1.创建多环境的application.yml
          • 2.application-dev.yml
          • 3.application-prod.yml
          • 4.application-test.yml
          • 5.创建启动类 DemoApplication.java
          • 6.不同环境启动
            • 1.默认dev启动
            • 2.切换为prod,启动
            • 3.切换为test,启动
        • 5.测试父模块的依赖
          • 1.创建一个controller测试
    • 4.sunrays-common模块:内部管理多个自定义starter
        • 1.搭建环境
          • 1.创建模块
        • 2.查看是否被sunrays-framework模块管理
        • 3.继承sunrays-dependencies模块,但是却由sunrays-framework进行配置管理,实现依赖和配置管理分离
        • 4.删除src目录
    • 5.封装common-web-starter
        • 1.创建模块
        • 2.查看是否交给sunrays-common管理
        • 3.创建自动配置文件(暂时不写东西)
        • 4.引入web相关依赖
        • 5.sunrays-demo 直接引入common-web-starter模块即可
        • 6.测试启动sunrays-demo
    • 6.修改sunrays-demo内部结构
        • 1.创建common-web-starter-demo子模块
        • 2.继承sunrays-demo模块
        • 3.修改sunrays-demo的pom 只是统一管理子模块
        • 4.common-web-starter-demo代替原有的sunrays-demo
        • 5.common-web-starter-demo的pom
        • 6.启动测试
        • 7.集成打包配置
        • 8.测试打包
    • 6.项目架构介绍
        • 1.概览
        • 2.各个模块功能介绍
          • 1.sunrays-framework
          • 2.sunrays-dependencies
          • 3.sunrays-common
          • 4.sunrays-demo

1.基本环境搭建

1.创建项目sunrays-framework

CleanShot 2024-10-04 at 21.35.53@2x

2.新增忽略文件

CleanShot 2024-10-04 at 21.40.34@2x

选择,Java,Maven,macOS,JetBrains

3.删除src目录

CleanShot 2024-10-04 at 21.43.58@2x

4.交给Git管理

CleanShot 2024-10-04 at 21.44.32@2x

CleanShot 2024-10-04 at 21.44.49@2x

2.sunrays-dependencies模块:统一管理依赖

1.创建模块

CleanShot 2024-10-04 at 21.48.03@2x

2.不要交给父模块管理,这是独立的!!!

CleanShot 2024-10-04 at 21.50.44@2x

3.删除src目录

CleanShot 2024-10-04 at 21.51.27@2x

4.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"><!-- 这个模块是独立的,不受sunrays-framework管理 --><modelVersion>4.0.0</modelVersion><groupId>com.sunxiansheng</groupId><artifactId>sunrays-dependencies</artifactId><version>1.0-SNAPSHOT</version><packaging>pom</packaging><properties><!-- 指定编译版本 --><java.version>1.8</java.version><maven.compiler.source>8</maven.compiler.source><maven.compiler.target>8</maven.compiler.target><project.build.sourceEncoding>UTF-8</project.build.sourceEncoding><project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding><!-- 指定版本号 --><spring-boot.version>2.4.2</spring-boot.version><lombok.version>1.18.16</lombok.version><hutool.version>5.8.12</hutool.version></properties><!-- 统一指定版本 --><dependencyManagement><!-- springboot --><dependencies><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-dependencies</artifactId><version>${spring-boot.version}</version><!-- 下面两个配置表示导入spring-boot-dependencies的dependencyManagement的版本 --><type>pom</type><scope>import</scope></dependency></dependencies></dependencyManagement><!--指定通用依赖--><dependencies><!-- lombok --><dependency><groupId>org.projectlombok</groupId><artifactId>lombok</artifactId><version>${lombok.version}</version></dependency><dependency><groupId>cn.hutool</groupId><artifactId>hutool-all</artifactId><version>${hutool.version}</version></dependency></dependencies><!-- 阿里云仓库,在父模块中配置仓库,可以使得所有子模块自动继承这个配置,这样在多模块项目中,每个模块无需单独配置仓库信息,便于管理和维护。 --><repositories><repository><id>central</id><name>aliyun maven</name><url>http://maven.aliyun.com/nexus/content/groups/public/</url><layout>default</layout><!-- 是否开启发布版构件下载 --><releases><enabled>true</enabled></releases><!-- 是否开启快照版构件下载 --><snapshots><enabled>true</enabled></snapshots></repository></repositories><!-- 打包通用配置 --><build><!-- maven的编译插件(配置注解处理器) --><plugins><plugin><groupId>org.apache.maven.plugins</groupId><artifactId>maven-compiler-plugin</artifactId><!-- maven编译插件版本号 --><version>3.8.1</version><configuration><!-- 配置注解处理器(比如Lombok和MapStruct) --><annotationProcessorPaths></annotationProcessorPaths></configuration></plugin></plugins><resources><!-- 配置资源文件,这里主要是指 src/main/resources 目录 --><resource><directory>src/main/resources</directory><!-- 配置了这个,则 Maven 的环境变量就可以填充到 application-xxx.yml 中(用 $ 符号取),可用于环境隔离 --><filtering>true</filtering></resource><!-- 可选:如果项目中有需要打包的 XML 文件,可以添加这部分配置 --><resource><directory>src/main/java</directory><includes><include>**/*.xml</include></includes></resource></resources><!-- 统一指定打包插件版本(与SpringBoot一致) --><pluginManagement><plugins><plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifactId><version>${spring-boot.version}</version></plugin></plugins></pluginManagement></build><!-- maven的环境变量env-flag的值为具体的值 --><profiles><!-- 开发 --><profile><!-- id(不重复即可) --><id>dev</id><properties><env-flag>dev</env-flag></properties><!-- 默认为dev --><activation><activeByDefault>true</activeByDefault></activation></profile><!-- 测试 --><profile><id>test</id><properties><env-flag>test</env-flag></properties></profile><!-- 生产 --><profile><id>prod</id><properties><env-flag>prod</env-flag></properties></profile></profiles></project>

3.sunrays-demo模块:测试

1.创建模块

CleanShot 2024-10-04 at 22.14.35@2x

2.修改pom.xml继承sunrays-dependencies的版本和通用依赖
<?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><parent><groupId>com.sunxiansheng</groupId><artifactId>sunrays-dependencies</artifactId><version>1.0-SNAPSHOT</version><!-- 当要继承的模块不是目录中的当前模块的父模块时使用 --><relativePath/></parent><artifactId>sunrays-demo</artifactId></project>
3.引入web依赖,进行测试
    <dependencies><!-- 引入springboot-web模块 --><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency></dependencies>
4.多环境测试
1.创建多环境的application.yml

CleanShot 2024-10-04 at 22.51.10@2x

2.application-dev.yml
server:port: 8081
3.application-prod.yml
server:port: 8082
4.application-test.yml
server:port: 8083
5.创建启动类 DemoApplication.java
package com.sunxiansheng.demo;import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;/*** Description: 启动类** @Author sun* @Create 2024/10/4 22:53* @Version 1.0*/
@SpringBootApplication
public class DemoApplication {public static void main(String[] args) {SpringApplication.run(DemoApplication.class, args);}
}

CleanShot 2024-10-04 at 22.53.53@2x

6.不同环境启动
1.默认dev启动

CleanShot 2024-10-04 at 22.54.14@2x

2.切换为prod,启动

CleanShot 2024-10-04 at 22.54.32@2x

CleanShot 2024-10-04 at 22.54.57@2x

3.切换为test,启动

CleanShot 2024-10-04 at 22.55.19@2x

CleanShot 2024-10-04 at 22.55.24@2x

5.测试父模块的依赖
1.创建一个controller测试
package com.sunxiansheng.demo.controller;import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;/*** Description: 测试** @Author sun* @Create 2024/10/4 22:56* @Version 1.0*/
@RestController
public class TestController {@RequestMapping("/test")public String test() {return "test";}
}

CleanShot 2024-10-04 at 22.58.02@2x

CleanShot 2024-10-04 at 22.58.32@2x

4.sunrays-common模块:内部管理多个自定义starter

1.搭建环境
1.创建模块

CleanShot 2024-10-04 at 23.08.25@2x

2.查看是否被sunrays-framework模块管理

CleanShot 2024-10-04 at 23.09.07@2x

3.继承sunrays-dependencies模块,但是却由sunrays-framework进行配置管理,实现依赖和配置管理分离
<?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><parent><groupId>com.sunxiansheng</groupId><artifactId>sunrays-dependencies</artifactId><version>1.0-SNAPSHOT</version><!-- 当要继承的模块不是目录中的当前模块的父模块时使用 --><relativePath/></parent><artifactId>sunrays-common</artifactId></project>
4.删除src目录

CleanShot 2024-10-04 at 23.16.11@2x

5.封装common-web-starter

1.创建模块

CleanShot 2024-10-04 at 23.17.33@2x

2.查看是否交给sunrays-common管理

CleanShot 2024-10-04 at 23.19.52@2x

3.创建自动配置文件(暂时不写东西)

CleanShot 2024-10-04 at 23.23.08@2x

4.引入web相关依赖
<?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><parent><groupId>com.sunxiansheng</groupId><artifactId>sunrays-common</artifactId><version>1.0-SNAPSHOT</version></parent><artifactId>common-web-starter</artifactId><dependencies><!-- 引入springboot-web模块 --><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency></dependencies></project>
5.sunrays-demo 直接引入common-web-starter模块即可
<dependencies><!-- 引入common-web-starter模块 --><dependency><groupId>com.sunxiansheng</groupId><artifactId>common-web-starter</artifactId><version>1.0-SNAPSHOT</version></dependency>
</dependencies>
6.测试启动sunrays-demo

CleanShot 2024-10-04 at 23.26.16@2x

6.修改sunrays-demo内部结构

1.创建common-web-starter-demo子模块

CleanShot 2024-10-04 at 23.34.59@2x

2.继承sunrays-demo模块
<?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><parent><groupId>com.sunxiansheng</groupId><artifactId>sunrays-demo</artifactId><version>1.0-SNAPSHOT</version></parent><artifactId>common-web-starter-demo</artifactId></project>
3.修改sunrays-demo的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 http://maven.apache.org/xsd/maven-4.0.0.xsd"><modelVersion>4.0.0</modelVersion><parent><groupId>com.sunxiansheng</groupId><artifactId>sunrays-dependencies</artifactId><version>1.0-SNAPSHOT</version><!-- 当要继承的模块不是目录中的当前模块的父模块时使用 --><relativePath/></parent><artifactId>sunrays-demo</artifactId><!-- 统一管理子模块 --><packaging>pom</packaging><modules><module>common-web-starter-demo</module></modules></project>
4.common-web-starter-demo代替原有的sunrays-demo

CleanShot 2024-10-04 at 23.42.41@2x

5.common-web-starter-demo的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 http://maven.apache.org/xsd/maven-4.0.0.xsd"><modelVersion>4.0.0</modelVersion><parent><groupId>com.sunxiansheng</groupId><artifactId>sunrays-demo</artifactId><version>1.0-SNAPSHOT</version></parent><artifactId>common-web-starter-demo</artifactId><dependencies><!-- 引入common-web-starter模块 --><dependency><groupId>com.sunxiansheng</groupId><artifactId>common-web-starter</artifactId><version>1.0-SNAPSHOT</version></dependency></dependencies></project>
6.启动测试

CleanShot 2024-10-04 at 23.44.45@2x

7.集成打包配置
    <!-- maven 打包常规配置 --><build><!-- 打包成 jar 包时的名字为项目的parent.artifactId + artifactId + version --><finalName>${project.parent.artifactId}-${project.artifactId}-${project.version}</finalName><plugins><plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifactId><!-- 引用父模块中统一管理的插件版本(与SpringBoot的版本一致! --><executions><execution><goals><!-- 将所有的依赖包都打到这个模块中 --><goal>repackage</goal></goals></execution></executions></plugin></plugins></build>
8.测试打包

CleanShot 2024-10-04 at 23.53.32@2x

6.项目架构介绍

1.概览

CleanShot 2024-10-04 at 23.49.21@2x

2.各个模块功能介绍
1.sunrays-framework

根模块,负责统一管理除了sunrays-dependencies之外的其他模块

2.sunrays-dependencies

统一管理依赖的模块,负责依赖版本的管理以及通用配置的管理

3.sunrays-common

公共模块,继承了sunrays-dependencies模块的版本和通用依赖,内部管理多个starter

4.sunrays-demo

demo模块,继承sunrays-dependencies模块的版本和通用依赖,内部管理多个demo

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/503562.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

JVM vs JDK vs JRE

JVM是Java虚拟机的缩写&#xff0c; 用于实现Java的一次编译&#xff0c;处处运行。 Java代码写成.class后&#xff0c;由本地的虚拟机运行。 JDK&#xff08;Java Development Kit&#xff09;是一个功能齐全的 Java 开发工具包&#xff0c;供开发者使用。 JDK包含了JRE。…

Android修改开机动画路径

frameworks\base\cmds\bootanimation\BootAnimation.cpp 路径的定义 优先查找的顺序

select下拉框,首次进入页面没有显示value的情况

bug场景&#xff1a; 类似这种bug情况排查如下&#xff1a; 首先 理解含义 options就是存放键值对的&#xff0c;id就是key&#xff0c;对上了它就自动把label显示 而且如果你用来当作key和label的字段&#xff0c;与后端返回的不一致&#xff0c;还可以进行更改 其次 排查接…

Redis中的主从/Redis八股

四、Redis主从 1.搭建主从架构 不像是负载均衡&#xff0c;这里是主从&#xff0c;是因为redis大多数是读少的是写 步骤 搭建实例&#xff08;建设有三个实例&#xff0c;同一个ip不同端口号&#xff09; 1&#xff09;创建目录 我们创建三个文件夹&#xff0c;名字分别叫700…

Mysql--基础篇--函数(字符串函数,日期函数,数值函数,聚合函数,自定义函数及与存储过程的区别等)

MySQL提供了丰富的内置函数&#xff0c;涵盖了字符串处理、数值计算、日期和时间操作、聚合统计、控制流等多种功能。这些函数可以帮助你简化SQL查询&#xff0c;提升开发效率。 除了内置函数&#xff0c;MySQL还支持自定义函数&#xff08;User-Defined Functions&#xff09;…

【linux系统之redis6】redis的安装与初始化

下载redis的linux对应的安装包&#xff0c;并上传到linux虚拟机里面 解压压缩包 tar -zxzf redis-6.2.6.tar.gz解压后&#xff0c;进入redis文件 cd redis-6.2.6执行编译 make && make install看到下图&#xff0c;就说明redis安装成功了 默认的安装路径&#xff0c…

怎么管理电脑usb接口,分享四种USB端口管理方法

怎么管理电脑usb接口&#xff0c;分享四种USB端口管理方法 USB接口作为电脑重要的外部接口&#xff0c;方便了数据传输和设备连接。 然而&#xff0c;不加管理的USB接口也可能带来安全隐患&#xff0c;例如数据泄露、病毒传播等。 因此&#xff0c;有效管理电脑USB接口至关重…

[开源]自动化定位建图系统

系统状态机&#xff1a; 效果展示&#xff1a; 1、 机器人建图定位系统-基础重定位&#xff0c;定位功能演示 2、 机器人建图定位系统-增量地图构建&#xff0c;手动回环检测演示 3、… 开源链接&#xff1a; https://gitee.com/li-wenhao-lwh/lifelong-backend Qt人机交互…

重新整理机器学习和神经网络框架

本篇重新梳理了人工智能&#xff08;AI&#xff09;、机器学习&#xff08;ML&#xff09;、神经网络&#xff08;NN&#xff09;和深度学习&#xff08;DL&#xff09;之间存在一定的包含关系&#xff0c;以下是它们的关系及各自内容,以及人工智能领域中深度学习分支对比整理。…

PyTorch 框架实现线性回归:从数据预处理到模型训练全流程

系列文章目录 01-PyTorch新手必看&#xff1a;张量是什么&#xff1f;5 分钟教你快速创建张量&#xff01; 02-张量运算真简单&#xff01;PyTorch 数值计算操作完全指南 03-Numpy 还是 PyTorch&#xff1f;张量与 Numpy 的神奇转换技巧 04-揭秘数据处理神器&#xff1a;PyTor…

Elasticsearch:优化的标量量化 - 更好的二进制量化

作者&#xff1a;来自 Elastic Benjamin Trent 在这里&#xff0c;我们解释了 Elasticsearch 中的优化标量量化以及如何使用它来改进更好的二进制量化 (Better Binary Quantization - BBQ)。 我们的全新改进版二进制量化 (Better Binary Quantization - BBQ) 索引现在变得更强大…

科普CMOS传感器的工作原理及特点

在当今数字化成像的时代&#xff0c;图像传感器无疑是幕后的关键 “功臣”&#xff0c;它宛如一位神奇的 “光影魔法师”&#xff0c;通过光电效应这一奇妙的物理现象&#xff0c;将光子巧妙地转换成电荷&#xff0c;为图像的诞生奠定基础。而在众多类型的图像传感器中&#xf…

IDEA中Maven依赖包导入失败报红的潜在原因

在上网试了别人的八个问题总结之后依然没有解决&#xff1a; IDEA中Maven依赖包导入失败报红问题总结最有效8种解决方案_idea导入依赖还是报红-CSDN博客https://blog.csdn.net/qq_43705131/article/details/106165960 江郎才尽之后突然想到一个原因&#xff1a;<dep…

Java100道面试题

1.JVM内存结构 1. 方法区&#xff08;Method Area&#xff09; 方法区是JVM内存结构的一部分&#xff0c;用于存放类的相关信息&#xff0c;包括&#xff1a; 类的结构&#xff08;字段、方法、常量池等&#xff09;。字段和方法的描述&#xff0c;如名称、类型、访问修饰符…

虚表 —— 隐藏行(简单版)

因为隐藏行改变了listview内部行号处理机制&#xff0c;需要处理大量细节&#xff0c;如listview内部用于传递行号的各种消息、通知等、封装的各种读取行号的函数等。 所以在工作量很大&#xff0c;一处纰漏可能导致重大bug的情况下&#xff0c;仅对隐藏行功能进行了简单封装&…

UDP -- 简易聊天室

目录 gitee&#xff08;内有详细代码&#xff09; 图解 MessageRoute.hpp UdpClient.hpp UdpServer.hpp Main.hpp 运行结果&#xff08;本地通信&#xff09; 如何分开对话显示&#xff1f; gitee&#xff08;内有详细代码&#xff09; chat_room zihuixie/Linux_Lear…

python制作翻译软件

本文复刻此教程&#xff1a;制作属于自己的翻译软件-很简单【Python】_哔哩哔哩_bilibili 一、明确需求&#xff08;以搜狗翻译为例&#xff09; &#xff08;1&#xff09;网址&#xff1a;https://fanyi.sogou.com/text &#xff08;2&#xff09; 数据&#xff1a;翻译内容…

uni-app 资源引用(绝对路径和相对路径)方法汇总

文章目录 一、前言&#x1f343;二、绝对路径和相对路径2.1 绝对路径2.2 相对路径 三、引用组件四、引用js4.1 js 文件引入4.2 NPM支持 五、引用css六、引用json6.1 json文件引入 七、引用静态资源7.1 模板内引入静态资源7.2 css 引入静态资源7.3 js/uts 引入静态资源7.4 静态资…

在 ASP.NET CORE 中上传、下载文件

创建 Web API 来提供跨客户端和服务器的文件上传和下载是常有的事。本文将介绍如何通过 ASP.NET CORE 来实现。 首先在 Visual Studio 中创建空的 Web API 项目&#xff0c;然后选择目标框架 .Net Core 3.1。 创建名为 FileController 的控制器&#xff0c;提供操作文件的接口…

基于 GEE Sentinel-1 数据集提取水体

目录 1 水体提取原理 2 完整代码 3 运行结果 1 水体提取原理 水体提取是地理信息和遥感技术的关键应用之一&#xff0c;对于多个领域都具有重要的应用价值。它有助于更好地管理水资源&#xff0c;保护环境&#xff0c;减少灾害风险&#xff0c;促进可持续发展&#xff0c;以…