在探究注解前先了解一下注解,何为注解?注解本质上就是一个类,开发中我们可以使用注解 取代 xml配置文件。
是
注意:在使用注解开发时,请查看对应的框架是否需要开启注解支持,否则用了注解也无效!!!
@Component注解
@component(value)
:用于创建对象的,作用于类.value
:指定 bean 的 id。如果不指定 value 属性,默认 bean 的 id 是当前类的类名。首字母小写。@component
是spring中的一个注解,它的作用就是实现bean的注入,代替了传统的xml方式注入bean >//@Component组件 等价于:<bean id="user" class="com.ms.pojo.User"/> >//也说明这个类被Spring接管了,注册到了容器中 >@Component("user") //("user")其实就是Bean id >public class User { >这里省略代码..... >}
在web开发中,会按照MVC三层架构分层!提供3个@Component
注解衍生注解(功能一样)来取代,其实就是更加语义化
@controller 控制器(表现层注解) 用于标注控制层,相当于MVC层中的web层
@Controller("userCotroller") //value相当于Bean中的id
public class UserController {
}
@service 服务(业务层注解) 用于标注服务层,主要用来进行业务的逻辑处理,相当于MVC层中的service层
@Service("userService") //value相当于Bean中的id
public class UserService {
}
@repository(持久层注解) 用于标注数据访问层,也可以说用于标注数据访问组件,即DAO组件,相当于MVC层中的dao层
@Repository("userDao") //value相当于Bean中的id
public class UserDao {
}
总结: @Component用于把当前方法的返回值作为bean对象存入spring的ioc容器中 属性: value:用于指定bean的id。当不写时,默认值是当前方法的名称 细节:当我们使用注解配置方法时,如果方法有参数,spring框架会去容器中查找有没有可用的bean对象。 查找的方式和Autowired注解的作用是一样的
@Configuration注解
作用:用于指定当前类是一个 spring 配置类, 当创建容器时会从该类上加载注解。 获取容器时需要使用
AnnotationApplicationContext
(有@Configuration
注解的类.class)
细节:当配置类作为AnnotationConfigApplicationContext
对象创建的参数时,该注解可以不写。
建议看一下这个
https://hgm.vercel.app/post/1d0508a6/
https://hgm.vercel.app/img/favicon.png
在使用@Bean注解的时候必须配合@Configuration来使用