0
点赞
收藏
分享

微信扫一扫

182.【2023年华为OD机试真题(C卷)】敏感字段加密(字符串的分割、替换和拼接实现Java&Python&C++&JS)

Hyggelook 2023-12-27 阅读 46

分模块设计与开发:

分析:

拆分后的格式:

    步骤:

注意:

创建一个新的空工程 web-project4:

空工程jdk的配置:

配置jdk21版本:

 

打开ideal:

开始拆分:

tlias-pojo模块创建好,的样子。

然后定义 com.sde.pojo包,这个包和未拆分前项目的包路径保持一致。

把要拆分的项目,pojo包下的类赋值到刚刚创建的,新模块 tlias-pojo 的pojo包下

可以发现很多爆红的地方。

在 tlias-pojo模块下的 pom文件里面引入依赖。

<!--引入依赖-->
    <dependencies>
        <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
            <version>1.18.30</version>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter</artifactId>
            <version>3.2.0</version>
        </dependency>
    </dependencies>

在此查看实体类,发现不报错了。

删除要拆分模块的pojo包

项目报错:

引入 tlias-pojo模块:

    <!--tlias-pojo-->
        <dependency>
            <groupId>com.sde</groupId>
            <artifactId>tlias-pojo</artifactId>
            <version>1.0-SNAPSHOT</version>
        </dependency>

现在就不报错了

把要拆分工程的utils包,也拆分开。

创建新的tlias-utils新模块

重复上面的步骤,创建com.sde.utils包,把要拆分工程utis包下的类,复制到tlias-utils模块下的utils包。

引入依赖:

引入好依赖,就不报错了。

然后,把父工程中的com.sde.utils包删除,引用tilas-utils模块下的utils包

引入依赖。

现在就不报错了。

启动项目测试:

    注意:

继承与聚合:


    继承:


            概念:
            作用:

            实现:

            java中打包方式:

            实现步骤:

1,新建tlias-parent模块作为父工程,把父工程的打包方式设置为pom: 

     

父工程添加spring boot的父依赖。

其他三个子工程,tlias-utils和tlias-pojo和tlias-mangement继承父工程(tlias-parent)

在tlias-pojo引入父工程依赖。

引入后:

在tlias-utils模块中,引入父工程依赖。

在tlias-management子工程中,引入tilas-parent依赖。

把,子工程中共有的依赖,提取到父工程,然后删除,子工程中共有的依赖。

先删了 tlias-pojo里面的。

删除tlias-utils子工程里面的。

删除tlias-management子工程里面的依赖。

由于我们的三个子工程依赖了,父工程tlias-parent。所以我们在右侧的maven中,看看三个子工程中是否有,父工程中的依赖。

 版本锁定:

            自定义属性/引用属性

        

代码: 

    <properties>
        <maven.compiler.source>21</maven.compiler.source>
        <maven.compiler.target>21</maven.compiler.target>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<!--        自定义属性-->
        <springboot.version>3.2.0</springboot.version>
        <lombok.version>1.18.30</lombok.version>
        <jwt.version>0.9.0</jwt.version>
        <aliyun.sdk.oos.version>3.15.1</aliyun.sdk.oos.version>
        <jaxb.api.version>2.3.1</jaxb.api.version>
        <activation.version>1.1.1</activation.version>
        <javaxb.runtime.version>2.3.3</javaxb.runtime.version>
    </properties>

使用dependcyManagement:

代码:

<!--依赖管理-->
    <dependencyManagement>
        <dependencies>
            <!--jwt-->
            <dependency>
                <groupId>io.jsonwebtoken</groupId>
                <artifactId>jjwt</artifactId>
              <version>${jwt.version}</version>
            </dependency>
            <!--阿里云oss-->
            <dependency>
                <groupId>com.aliyun.oss</groupId>
                <artifactId>aliyun-sdk-oss</artifactId>
                <version>${aliyun.sdk.oos.version}</version>
            </dependency>
            <!--        jdk1.9版本以上需要额外加上面三个依赖-->
            <dependency>
                <groupId>javax.xml.bind</groupId>
                <artifactId>jaxb-api</artifactId>
                <version>${jaxb.api.version}</version>
            </dependency>
            <dependency>
                <groupId>javax.activation</groupId>
                <artifactId>activation</artifactId>
                <version>${activation.version}</version>
            </dependency>
            <!-- no more than 2.3.3-->
            <dependency>
                <groupId>org.glassfish.jaxb</groupId>
                <artifactId>jaxb-runtime</artifactId>
                <version>${javaxb.runtime.version}</version>
            </dependency>
        </dependencies>
    </dependencyManagement>

在父工程 dependcies标签中,引入需要传递的依赖。

    <!--    直接依赖 子工程直接引入-->
    <dependencies>
        <!--lombok-->
        <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
            <version>${lombok.version}</version>
        </dependency>
        <!--spring的基础依赖-->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter</artifactId>
            <version>${springboot.version}</version>
        </dependency>
    </dependencies>

总体预览:

 

父工程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>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>3.1.6</version>
        <relativePath/> <!-- lookup parent from repository -->
    </parent>

    <groupId>com.sde</groupId>
    <artifactId>tlias-parent</artifactId>
    <version>1.0-SNAPSHOT</version>
    <packaging>pom</packaging>

    <properties>
        <maven.compiler.source>21</maven.compiler.source>
        <maven.compiler.target>21</maven.compiler.target>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <!--        自定义属性-->
        <springboot.version>3.2.0</springboot.version>
        <lombok.version>1.18.30</lombok.version>
        <jwt.version>0.9.0</jwt.version>
        <aliyun.sdk.oos.version>3.15.1</aliyun.sdk.oos.version>
        <jaxb.api.version>2.3.1</jaxb.api.version>
        <activation.version>1.1.1</activation.version>
        <javaxb.runtime.version>2.3.3</javaxb.runtime.version>
    </properties>

    <!--    直接依赖 子工程直接引入-->
    <dependencies>
        <!--lombok-->
        <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
            <version>${lombok.version}</version>
        </dependency>
        <!--spring的基础依赖-->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter</artifactId>
            <version>${springboot.version}</version>
        </dependency>
    </dependencies>

    <!--依赖管理-->
    <dependencyManagement>
        <dependencies>
            <!--jwt-->
            <dependency>
                <groupId>io.jsonwebtoken</groupId>
                <artifactId>jjwt</artifactId>
                <version>${jwt.version}</version>
            </dependency>
            <!--阿里云oss-->
            <dependency>
                <groupId>com.aliyun.oss</groupId>
                <artifactId>aliyun-sdk-oss</artifactId>
                <version>${aliyun.sdk.oos.version}</version>
            </dependency>
            <!--        jdk1.9版本以上需要额外加上面三个依赖-->
            <dependency>
                <groupId>javax.xml.bind</groupId>
                <artifactId>jaxb-api</artifactId>
                <version>${jaxb.api.version}</version>
            </dependency>
            <dependency>
                <groupId>javax.activation</groupId>
                <artifactId>activation</artifactId>
                <version>${activation.version}</version>
            </dependency>
            <!-- no more than 2.3.3-->
            <dependency>
                <groupId>org.glassfish.jaxb</groupId>
                <artifactId>jaxb-runtime</artifactId>
                <version>${javaxb.runtime.version}</version>
            </dependency>
        </dependencies>
    </dependencyManagement>



</project>

把子工程的依赖版本号去掉:

测试:

            

现在把jwt令牌改成0.9.1测试看效果:

我在把jwt令牌,的版本改成 0.9.0 看看其他子工程是否有变化。

启动测试:

dependcies和dependcyManagement的区别:

    聚合:

 创建tlias-parent父工程:

 由于父工程,只存在pom文件即可。把其他的src目录删掉即可。

测试非聚合打包:

1,禁用单元测试:

2,在tlias-management工程中点击打包(packing)。

 

可以发现,无法正常打包,我们需要把tlias-pojo和tlias-utils先install安装到本地才可以。

先安装tlias-pojo模块。

 

看看我们本地的maven仓库有没有,多的tlias-pojo包。

 

我们在测试tlias-management的打包。

可以看到还是打包失败了。

 

tlias-utils模块进行install安装。

 

把我们的父工程tlias-parent也安装到本地:

 

在我本地的maven仓库查看:

 点击测试打包tlias-management工程:

打包成功了 


        聚合:
        聚合工程:

就是父工程里面之后一个pom.xml配置文件 


        作用:

 

代码:

<!--    聚合工程-->
    <modules>
        <module>../tilas-management</module>
        <module>../tlias-pojo</module>
        <module>../tlias-utils</module>
    </modules>

效果:

我们在继承的时候,交父工程,在聚合的时候交聚合工程。

            注意:

现在我们把我们本地的maven仓库,刚刚安装(install)好的,那三个文件删除。在对tlias-management进行打包。

删除后:

 

点击打包: 

在idea查看效果:


私服:


    介绍:

依赖查找顺序:
资源上传与下载:
项目版本:

资源上传和下载的步骤:

1,在setting.xml配置文件中配置:

  <servers>
    <!-- server
     | Specifies the authentication information to use when connecting to a particular server, identified by
     | a unique name within the system (referred to by the 'id' attribute below).
     |
     | NOTE: You should either specify username/password OR privateKey/passphrase, since these pairings are
     |       used together.
     |
    <server>
      <id>deploymentRepo</id>
      <username>repouser</username>
      <password>repopwd</password>
    </server>
    -->
      <server>
        <id>maven-releases</id>
        <username>admin</username>
        <password>admin</password>
      </server>
        
      <server>
        <id>maven-snapshots</id>
        <username>admin</username>
        <password>admin</password>
      </server>

    <!-- Another sample, using keys to authenticate.
    <server>
      <id>siteServer</id>
      <privateKey>/path/to/private/key</privateKey>
      <passphrase>optional; leave empty if not used.</passphrase>
    </server>
    -->
  </servers>

2,在maven的settings.xml文件中的,mirrors标签中配置。

<mirrors>
	 <!-- 阿里云仓库 -->
  <!--   <mirror>
        <id>alimaven</id>
        <mirrorOf>central</mirrorOf>
        <name>aliyun maven</name>
        <url>http://maven.aliyun.com/nexus/content/repositories/central/</url>
    </mirror> -->

    <mirror>
      <id>maven-public</id>
      <mirrorOf>*</mirrorOf>
      <url>http://localhost:8081/repository/maven-public/</url>
    </mirror>
</mirrors>

3,在maven的settings.cml配置文件中的profiles标签里面,指定快照版本依赖。

<profiles>
    <profile>
        <id>allow-snapshots</id>
        <activation>
          <activeByDefault>true</activeByDefault>
        </activation>
    <repositories>
        <repository>
            <id>maven-public</id>
            <url>http://localhost:8081/repository/maven-public/</url>
            <releases>
              <enabled>true</enabled>
            </releases>
            <snapshots>
              <enabled>true</enabled>
            </snapshots>
        </repository>
    </repositories>
</profile>


  </profiles>

回到idea重新加载一下:

在父工程的pom.xml文件中配置:

   <distributionManagement>
        <!-- release版本的发布地址 -->
        <repository>
            <id>maven-releases</id>
            <url>http://localhost:8081/repository/maven-releases/</url>
        </repository>

        <!-- snapshot版本的发布地址 -->
        <snapshotRepository>
            <id>maven-snapshots</id>
            <url>http://localhost:8081/repository/maven-snapshots/</url>
        </snapshotRepository>
    </distributionManagement>

在我们的maven中,通过deploy生命周期(发布即可),跳过单元测试。

点击:tlias-parent父工程的deploy,进行上传:

上传成功后,在我们自己的私服查看。

进入到快照版本后,就能看到了。

本地maven仓库也能看到:

我们在本地maven仓库删掉,这三个tilas-开头的文件,看看私服会变化吗?

在浏览器刷新一下:maven-snapshots快照版本

查看:maven-public:

更改快照版本,上传到发行版本: 

改成发行版,在测试一次。

修改tlias-parent模块的版本:

修改tlias-mangement的发行版本:

我们发现,tlias-management工程下,引用了,tlias-pojo和tlias-utils两个模块。

修改:tlias-pojo模块

修改tlias-utils模块:

在回过头来看tlias-management工程引入的tlias-pojo和tlias-utils是否报错:

 

在父工程下,点解 deploy开始上传。这次是上传到maven-release(发行版)

 

上传成功后,刷新浏览器地址栏查看。

查看我们maven的本地仓库:

nexus私服的使用:

1,先解压,nexus压缩包:

 2,点击 bin目录里面的start.bat启动:

3,启动时间可以会很长,

4,在浏览器地址栏,输入 nexus的访问地址:http://localhost:8081

登录测试:

我先输入 用户:admin 密码:111111 (进行错误测试)

在输入正确的账号和密码进行测试:

查看登录之后的效果:

查看控制台:

上传完成后,记得要把我们maven的settings.xml配置文件里面的东西删掉或者注释掉

1,注释servers标签里面的:

2,注释mirrors标签里的:

注释掉,profiles:

然后开idea,重新加载。

在tlias-parent的pom文件里面,注释。

刷新maven,重启项目。

​​​​​​​

举报

相关推荐

0 条评论