当前位置:首页 > 系统运维

详解 | Spring Boot 核心的 3 个注解详解

本文转载自微信公众号「小明菜市场」,详解详解作者小明菜市场 。核心转载本文请联系小明菜市场公众号。注解

前言

Spring Boot 最大的详解详解特点是无需 XML 配置文件,能够实现自动装配,核心并进行全自动化的注解jar包配置。Spring Boot 是详解详解微服务的核心,其Spring Cloud 是核心基于Spring Boot 为基础的。其框架是注解用来简化Spring应用的初始搭建和开发过程,即,详解详解简化了框架,核心便捷了开发。注解下面开始介绍Spring Boot 最核心的详解详解三个注解

Configuration

在Spring4以后,服务器租用官方推荐使用 Java Config 来代替 Application.xml 声明将Bean交给容器管理。核心在Spring Boot 中,注解Java Config 使用完全代替了application.xml 实现了xml的零配置, 开下面这个例子

实例

创建一个bean类

public class SomeBean {      public void doWork() {          System.out.println("do work...");     } } 

其中,dowork是逻辑方法 再创建一个Config类

@Configuration public class Config {      @Bean     public SomeBean someBean() {          return new SomeBean();     } } 

在这里,在Config类上添加了一个@configuration注解,可以理解为Spring中的配置类,其返回值为someBean,someBean方法上也添加了一个@bean注解,其返回对象也将会交由Spring容器进行管理。

简单测试

public class Test {      public static void main(String[] args) {          ApplicationContext context = new AnnotationConfigApplicationContext(Config.class);         SomeBean sb = context.getBean(SomeBean.class);         sb.doWork();     } } 

这里,创建了一个AnnotationConfigApplicationContext对象,传入了Config.class 后,得到了someBean对象。

do work...

扩展

一般的,一个完整的bean需要包括,id,class,initMethod,destroyMethod,·ref,scope。源码库所以这里使用 Java Config 进行相关的配置这些属性。修改第一个例子代码

public class SomeBean {      private void init() {          System.out.println("init...");     }     public void doWork() {          System.out.println("do work...");     }     private void destroy() {          System.out.println("destroy...");     } } 

增加,init,destroy方法

@Configuration public class Config {      @Bean(initMethod = "init",destroyMethod = "destroy")     public SomeBean someBean() {          return new SomeBean();     } } 

在bean注解上,属性指向对应的方法。

public class Test {      public static void main(String[] args) {          AnnotationConfigApplicationContext context = new AnnotationConfigApplicationContext(Config.class);         SomeBean sb1 = context.getBean(SomeBean.class);         System.out.println(sb1);         SomeBean sb2 = context.getBean(SomeBean.class);         System.out.println(sb2);         context.close();     } } 

输出结果为

init... com.spring.SomeBean@16022d9d com.spring.SomeBean@16022d9d destroy... 

这样就完成了一个配置的生命周期。

@ComponentScan

@ComponentScan注解,用于类或接口上主要指定的扫描路径,Spring会把指定路径下带有指定注解的类自动装配到bean容器里,会被自动装配的注解包括@Controller,@Service,@Component,@Repository等。其作用相当于,

<context:component-scan base-package=”com.maple.learn” /> 

分享到:

滇ICP备2023006006号-16