在Spring Boot框架中,创建和科罚对象时时通过依赖注入(Dependency Injection, DI)来终了。Spring Boot使用Spring框架的IoC容器来科罚对象的生命周期和依赖联系。以下是如安在Spring Boot中创建和科罚对象的标准和代码示例:
标准1: 添加依赖
最初,确保你的Spring Boot步地中包含了必要的依赖。关于大大量Spring Boot步地,你至少需要以下依赖:
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter</artifactId></dependency>
标准2: 界说Bean
在Spring Boot中,不错通过在类上使用@Component、@Service、@Repository或@Controller注解来象征一个类为Spring科罚的组件。这些注解王人是的特化姿色,它们提供了更具体的语义。
举例,创建一个就业类:
import org.springframework.stereotype.Service;@Servicepublic class MyService { public String serve() { return "Service is serving!"; }}
标准3: 自动安装Bean
一朝你界说了一个Bean,你不错在其他类中通过自动安装(autowiring)来使用它。Spring Boot撑合手构造器注入、字段注入和setter范例注入。
构造器注入
这是推选的范例,因为它使得依赖联系不行变且更容易进行单位测试。
import org.springframework.beans.factory.annotation.Autowired;import org.springframework.stereotype.Component;@Componentpublic class MyComponent { private final MyService myService; @Autowired public MyComponent(MyService myService) { this.myService = myService; } public void doSomething() { System.out.println(myService.serve()); }}
字段注入
这种范例浅易径直,但可能导致难以进行单位测试,因为依赖联系是独有的。
import org.springframework.beans.factory.annotation.Autowired;import org.springframework.stereotype.Component;@Componentpublic class MyComponent { @Autowired private MyService myService; public void doSomething() { System.out.println(myService.serve()); }}
Setter范例注入
这种范例允许你在启动时革新依赖联系,但时时不推选定于必需的依赖。
import org.springframework.beans.factory.annotation.Autowired;import org.springframework.stereotype.Component;@Componentpublic class MyComponent { private MyService myService; @Autowired public void setMyService(MyService myService) { this.myService = myService; } public void doSomething() { System.out.println(myService.serve()); }}
标准4: 启动愚弄并考证
终末,你不错创建一个主类来启动你的Spring Boot愚弄:
import org.springframework.boot.SpringApplication;import org.springframework.boot.autoconfigure.SpringBootApplication;import org.springframework.context.ConfigurableApplicationContext;@SpringBootApplicationpublic class Application { public static void main(String[] args) { ConfigurableApplicationContext context = SpringApplication.run(Application.class, args); MyComponent myComponent = context.getBean(MyComponent.class); myComponent.doSomething(); }}
当你启动这个愚弄时,Spring Boot会自动竖立和启动,何况MyComponent中的doSomething范例会被调用,输出"Service is serving!"。
详解:
@Component, @Service, @Repository, @Controller: 这些注解告诉Spring这是一个组件,应该被Spring容器科罚。时时用于业务逻辑层,而用于数据探望层。@Autowired: 这个注解用于自动安装依赖。Spring会在容器中查找匹配的Bean,并注入到标注了@Autowired的字段、构造器或范例中。SpringApplication.run: 这个范例启动Spring愚弄险阻文,加载总共竖立和Bean界说,然后复返一个ConfigurableApplicationContext实例,不错用来获得Bean或扩充其他操作。