首页 > 其他分享 >springboot项目使用自定义starter

springboot项目使用自定义starter

时间:2024-07-30 23:08:42浏览次数:13  
标签:springboot 自定义 boot springframework import org com starter

首先是自定义的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 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>

    <groupId>com.common</groupId>
    <artifactId>common-service</artifactId>
    <version>1.0-SNAPSHOT</version>

    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.7.18</version>
    </parent>

    <properties>
        <java.version>1.8</java.version>
        <skipTests>true</skipTests>
    </properties>

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


    <build>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <version>3.8.1</version>
                <configuration>
                    <source>1.8</source>
                    <target>1.8</target>
                </configuration>
            </plugin>
        </plugins>
    </build>


</project>

  代码部分

package com.common.starter;

/**
 * @Description:
 * @Author: tutu-qiuxie
 * @Create: 2024/7/30 22:36
 */
public interface TestService {

    void testPlay();
}

package com.common.starter;

/**
 * @Description:
 * @Author: tutu-qiuxie
 * @Create: 2024/7/30 22:37
 */
public class TestServiceImpl implements TestService{
    @Override
    public void testPlay() {
        System.out.println("自定义starter测试打印");
    }
}

  

package com.common.starter.config;

import com.common.starter.TestService;
import com.common.starter.TestServiceImpl;
import org.springframework.boot.autoconfigure.condition.ConditionalOnClass;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

/**
 * @Description:
 * @Author: tutu-qiuxie
 * @Create: 2024/7/30 22:35
 */
@Configuration
@ConditionalOnClass(TestService.class)
public class MyAutoConfiguration {

    @Bean
    public TestService testService(){
        return new TestServiceImpl();
    }

}

  配置类部分

 

org.springframework.boot.autoconfigure.EnableAutoConfiguration=\
com.common.starter.config.MyAutoConfiguration

  使用idea打包到本地maven仓库

 使用部分

 使用方完整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>

    <groupId>com.example</groupId>
    <artifactId>consumer-service</artifactId>
    <version>1.0-SNAPSHOT</version>

    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.7.18</version>
    </parent>

    <dependencies>
        <dependency>
            <groupId>com.common</groupId>
            <artifactId>common-service</artifactId>
            <version>1.0-SNAPSHOT</version>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
        </dependency>
        <!--引入junit单元测试依赖-->
        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>4.12</version>
        </dependency>
    </dependencies>


</project>

  启动类

package com.example;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

/**
 * @Description:
 * @Author: tutu-qiuxie
 * @Create: 2024/7/30 22:54
 */
@SpringBootApplication
public class TestApplication {
    public static void main(String[] args) {
        SpringApplication.run(TestApplication.class,args);
    }
}

  测试类部分

package com.example;

import com.common.starter.TestService;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.test.context.junit4.SpringRunner;

/**
 * @Description:
 * @Author: tutu-qiuxie
 * @Create: 2024/7/30 22:52
 */
@RunWith(SpringRunner.class)
@SpringBootTest
public class Tests {

    @Autowired
    private TestService testService;


    @Test
    public void test002(){
        testService.testPlay();
    }


}

  

 

标签:springboot,自定义,boot,springframework,import,org,com,starter
From: https://www.cnblogs.com/q202105271618/p/18333526

相关文章

  • Springboot3集成knife4j,swagger实现在线接口文档
    什么是knife4jknife4j是一个集Swagger2和OpenAPI3为一体的增强解决方案,帮助开发者快速聚合使用OpenAPI规范,快速生成API文档,并且提供一些额外的功能,比如:API文档生成:可以根据Controller和方法上的注解自动生成Markdown格式的API文档在线访问API:可以在knife4j的页面直接访问......
  • 基于springboot学生毕业离校系统lw(毕设+实现+源码+数据库)
    摘 要一年一度的毕业季的到来,方方面面都普及使得学生毕业离校系统的开发成为必需。学生毕业离校系统主要是借助计算机,通过对学生、教师、离校信息、费用结算、LW审核等信息进行管理。为减少管理员的工作,同时也方便广大学生对个人所需毕业离校的及时查询以及管理。学生毕......
  • 基于springboot音乐网站与分享平台(毕设+实现+源码+数据库)
                           摘要本LW主要论述了如何使用JAVA语言开发一个音乐网站与分享平台,本系统将严格按照软件开发流程进行各个阶段的工作,采用B/S架构,面向对象编程思想进行项目开发。在引言中,作者将论述音乐网站与分享平台......
  • 用idea实现第一个springBoot
    hello@Controller@RequestMapping("/hello")publicclassHelloController{@GetMapping("/hello")@ResponseBodypublicStringhello(){return"hello";}} 更改端口号#更改端口号server.port=8081banner.tx......
  • 打造专属体验:Laravel自定义命令行提示全指南
    打造专属体验:Laravel自定义命令行提示全指南在Laravel的生态系统中,artisan命令行工具是与框架互动的强大方式。通过artisan,开发者可以执行迁移、测试、队列工作等操作。然而,artisan的提示信息默认是通用的,有时可能不够直观或友好。幸运的是,Laravel允许我们通过自定义命令行......
  • springboot+vue基于微服务架构的设备管理系统【程序+论文+开题】-计算机毕业设计
    系统程序文件列表开题报告内容研究背景随着企业规模的不断扩大与信息化程度的日益加深,设备管理成为企业运营中不可或缺的一环。传统集中式架构的设备管理系统在面对大规模数据处理、高并发访问及系统扩展性等方面显得力不从心。微服务架构以其高度的模块化、灵活的服务部署......
  • 基于SpringBoot+Vue的电影院订票信息管理系统的详细设计和实现(源码+lw+部署文档+讲解
    文章目录前言详细视频演示项目运行截图技术框架后端采用SpringBoot框架前端框架Vue可行性分析系统测试系统测试的目的系统功能测试数据库表设计代码参考数据库脚本为什么选择我?获取源码前言......
  • 基于SpringBoot+Vue的甘肃旅游管理系统的详细设计和实现(源码+lw+部署文档+讲解等)
    文章目录前言详细视频演示项目运行截图技术框架后端采用SpringBoot框架前端框架Vue可行性分析系统测试系统测试的目的系统功能测试数据库表设计代码参考数据库脚本为什么选择我?获取源码前言......
  • go-zero 自定义中间件的几种方式
    目录1.通过api文件生成并填入具体逻辑定义api生成对应的模板填充中间件逻辑2.在server启动前完成中间件的注册定义中间件:注册到server中首先go-zero已经为我们提供了很多的中间件的实现,但有时难免有需求需要自定义,这里介绍几种自定义的方法,供参考。1.通过api文件生......
  • 记一次解决SpringBoot项目由于依赖加载顺序问题导致启动报NoSuchMethodError的问题
    只发博客园,盗版必究先说背景平时我们的SpringBoot项目都是打成ExecutableJar启动应用,最近接了个技术需求,需要打成War包,将多个项目放在同一个Tomcat中运行。原本Jar包启动一切正常,但是打成WAR放Tomcat启动后报错了,异常栈如下:Causedby:org.springframework.beans.factory.......