欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 汽车 > 新车 > Java直通车系列25【Spring Boot】(核心注解)

Java直通车系列25【Spring Boot】(核心注解)

2025/3/11 9:38:42 来源:https://blog.csdn.net/TEUTEU/article/details/146148760  浏览:    关键词:Java直通车系列25【Spring Boot】(核心注解)

目录

@SpringBootApplication

@Component

@Autowired

@RequestMapping

@Configuration 和 @Bean


@SpringBootApplication

  • 解释:这是 Spring Boot 应用的核心注解,它是一个组合注解,包含了@Configuration@EnableAutoConfiguration@ComponentScan这三个注解的功能。@Configuration表明该类是一个配置类,@EnableAutoConfiguration开启自动配置功能,让 Spring Boot 根据类路径下的依赖和配置自动配置 Spring 应用,@ComponentScan用于扫描指定包及其子包下的组件并将其注册到 Spring 容器中。
  • 场景示例
@SpringBootApplication
public class MyApplication {public static void main(String[] args) {SpringApplication.run(MyApplication.class, args);}
}

在上述代码中,@SpringBootApplication注解在启动类MyApplication上,使得该应用具备了自动配置、组件扫描等功能,能够快速启动一个 Spring Boot 应用。

@Component

  • 解释:用于将一个普通的 Java 类标记为 Spring 容器中的组件,让 Spring 可以自动扫描并管理该类的实例。它是一个通用的组件注解,其他如@Service@Repository@Controller等注解本质上也是基于@Component的特殊化注解。
  • 场景示例
@Component
public class MyComponent {// 组件的业务逻辑方法public void doSomething() {System.out.println("执行MyComponent的doSomething方法");}
}

在这个例子中,MyComponent类被@Component注解标记,Spring 容器在启动时会扫描到这个类,并创建它的实例,以便在其他地方可以通过依赖注入来使用它。

@Autowired

  • 解释:用于实现自动装配,它可以对类的成员变量、方法参数等进行标注,让 Spring 容器在运行时自动注入对应的依赖对象。默认情况下,它是按照类型进行装配的,如果存在多个相同类型的 Bean,也可以结合@Qualifier注解按照名称进行装配。
  • 场景示例
@Service
public class MyService {@Autowiredprivate MyRepository myRepository;// 业务逻辑方法,使用myRepository进行数据操作public void doService() {myRepository.saveData("测试数据");}
}

MyService类中,通过@Autowired注解自动注入了MyRepository类型的对象,这样在MyService的业务方法中就可以直接使用MyRepository来进行数据操作,而不需要手动创建和赋值MyRepository对象。

@RequestMapping

  • 解释:用于处理请求映射,它可以标注在类或方法上。标注在类上时,表示该类中的所有请求处理方法都有一个共同的请求路径前缀;标注在方法上时,指定了该方法所处理的具体请求路径和请求方法等信息。
  • 场景示例
@Controller
@RequestMapping("/users")
public class UserController {@RequestMapping(value = "/{id}", method = RequestMethod.GET)public String getUserById(@PathVariable("id") Long id, Model model) {// 根据id查询用户信息User user = userService.getUserById(id);model.addAttribute("user", user);return "userDetails";}
}

在上述代码中,@RequestMapping("/users")定义了UserController类中所有请求处理方法的路径前缀为/users,而@RequestMapping(value = "/{id}", method = RequestMethod.GET)表示getUserById方法处理以/users/{id}为路径的 GET 请求,其中{id}是一个路径变量,用于获取用户的 ID。

@Configuration 和 @Bean

  • 解释
    • @Configuration:用于标记一个类作为配置类,该类可以包含多个@Bean注解标注的方法,用于向 Spring 容器中注册 Bean。
    • @Bean:用于在配置类中定义一个 Bean,告诉 Spring 容器如何创建和管理这个 Bean 对象。
  • 场景示例
@Configuration
public class AppConfig {@Beanpublic DataSource dataSource() {// 创建并配置数据源DriverManagerDataSource dataSource = new DriverManagerDataSource();dataSource.setDriverClassName("com.mysql.jdbc.Driver");dataSource.setUrl("jdbc:mysql://localhost:3306/mydb");dataSource.setUsername("root");dataSource.setPassword("password");return dataSource;}
}

AppConfig配置类中,@Configuration注解表明这是一个配置类,@Bean注解的dataSource方法创建了一个DataSource类型的 Bean,并配置了数据库连接信息,Spring 容器在启动时会调用这个方法来创建DataSource对象并将其注册到容器中,供其他组件使用。

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

热搜词