跟着学习文档,折腾了半天,没想到最后是springboot版本问题,记录下来
🙌跟着我一起开始学习!!!!!!!!!!!
创建项目
Starter 也是基于 SpringBoot 项目创建的,所以第一步应该先创建 SpringBoot 项目。
pom.xml 只需引用 spring-boot-starter 即可
创建工程完成后,删除不必要文件,目录如下:
css
├── pom.xml
└── src
├── main
│ ├── java
│ │ └── cn
│ │ └── machen
│ │ └── starter
│ │ └── demospringbootstarter
│ └── resources
注意奥!!! demospringbootstarter是包目录
然后这个项目的maven的三坐标就是以后别的项目可以引入的依赖
写自动配置类
然后在这个包下写自动配置类,为了让Springboot自动装载的,我们写一个AutoConfigurationTest
类
等一下!! 自动装载什么呢?比如我想在让其自动加载ServiceBean,我得先提供吧
来咯🐕
typescript
public class ServiceBean {
public String sayHello(String name) {
return String.format("Hello World, %s", name);
}
}
然后再写一个自动配置类,来将 ServiceBean 进行声明 Bean,等待扫描后交付给 Spring Ioc 容器
typescript
@Configuration
public class AutoConfigurationTest {
@Bean
public ServiceBean getServiceBean() {
return new ServiceBean();
}
}
稍等!!!!
为什么加入了@Bean
之后就可以被自动扫描了?
看一下@Bean
的定义:在Spring中,@Bean
注解用于定义一个Bean,并告诉Spring容器如何创建这个Bean。当Spring容器扫描到带有@Configuration
注解的类时,它会检查类中的@Bean
注解,将@Bean
注解的方法返回的对象注册为Spring Bean
添加自动配置的路径
目 Resources 目录下新建 META-INF 文件夹,然后创建 spring.factories 文件
里面写:
ini
org.springframework.boot.autoconfigure.EnableAutoConfiguration=\
cn.machen.starter.demospringbootstarter.AutoConfigurationTest
打包
直接mvn clean install,将其打入maven本地仓库
项目使用
另起一个项目,里面引入依赖,我不贴我的了,你直接复制你的自定义的项目中的maven三坐标作为依赖
然后测试类里面注入后直接用
typescript
@SpringBootTest
class Demo1ApplicationTests {
@Autowired
private ServiceBean serviceBean;
@Test
void contextLoads() {
System.out.println(serviceBean.sayHello("libai"));
}
}
舒服了💕