主页 > 手机  > 

JAVA学习笔记038——bean的概念和常见注解标注

JAVA学习笔记038——bean的概念和常见注解标注
什么是bean?

Bean 就是 被 Spring 管理的对象,就像工厂流水线上生产的“标准产品”。这些对象不是你自己 new 出来的,而是由 Spring 容器(一个超级工厂)帮你创建、组装、管理。

由 @Component、@Service、@Controller 等注解标记的类,都会变成 Spring 管理的 Bean。这些注解就像是给类贴了一个标签,告诉 Spring:“嘿,这个类交给你了,帮我管理它!”

这些注解的作用

@Component:

最通用的注解,标记一个类为 Bean。

比如:

@Component public class MyComponent { // 这是一个普通的 Bean } @Service:

专门用于标记业务逻辑层的类。

比如:

@Service public class UserService { // 这是一个业务逻辑 Bean } @Controller:

专门用于标记控制器层的类(通常用于处理 HTTP 请求)。

比如:

@Controller public class UserController { // 这是一个控制器 Bean } @Repository:

专门用于标记数据访问层的类(通常用于操作数据库)。

比如:

@Repository public class UserRepository { // 这是一个数据访问 Bean } 为什么分这么多注解?

虽然这些注解的功能本质上是一样的(都是把类变成 Bean),但它们有语义化的作用:

让代码更清晰:看到 @Service 就知道这是业务逻辑,看到 @Controller 就知道这是处理请求的。

方便扩展:未来 Spring 可能会根据注解类型提供特定的功能(比如 @Repository 会处理数据库异常)。

Bean 的创建过程

扫描:Spring 启动时,会扫描所有被 @Component、@Service、@Controller、@Repository 标记的类。

实例化:Spring 会创建这些类的对象(即 Bean)。

管理:把这些 Bean 放到 Spring 容器中,供其他地方使用。

举个完整的例子 // 1. 定义一个服务类(标记为 Bean) @Service public class UserService { public String getUserName() { return "张三"; } } // 2. 定义一个控制器类(标记为 Bean) @Controller public class UserController { @Autowired // 自动注入 UserService 的 Bean private UserService userService; public void showUserName() { String name = userService.getUserName(); System.out.println("用户名:" + name); } } 运行逻辑:

Spring 扫描到 UserService 和 UserController,把它们变成 Bean。

Spring 发现 UserController 需要 UserService,于是自动把 UserService 的 Bean 注入到 UserController 中。

你可以直接使用 UserController,而不用手动创建 UserService。

总结

被 @Component、@Service、@Controller、@Repository 标记的类,都会变成 Bean。

区别:这些注解主要是为了区分 Bean 的用途,让代码更清晰。

核心:Spring 会自动管理这些 Bean 的生命周期和依赖关系,你只需要用 @Autowired 就能轻松使用它们!

标签:

JAVA学习笔记038——bean的概念和常见注解标注由讯客互联手机栏目发布,感谢您对讯客互联的认可,以及对我们原创作品以及文章的青睐,非常欢迎各位朋友分享到个人网站或者朋友圈,但转载请说明文章出处“JAVA学习笔记038——bean的概念和常见注解标注

上一篇

下一篇
sqlserver版本更新日期