@Component注解
@Component表示这个类交给spring管理就是一个组件
注解源代码:
package org.springframework.stereotype;
import java.lang.annotation.Documented;
import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;
@Target(ElementType.TYPE)
@Retention(RetentionPolicy.RUNTIME)
@Documented
@Indexed
public @interface Component {
String value() default "";
}
@Target(ElementType.TYPE)在类上方的
@Retention(RetentionPolicy.RUNTIME)运行时间
注解中有属性value(有默认值"") , 表示bean的id/name。当不设置这个vlaue值,spring会自动将这个类的类名的首字母小写作为value的值
比如:UserDaoImpl的value就是userDaoImp
和@Component有同样功能的三个注解是:
@Repository(它的意思和@Component一样,也是告诉spring这个类你帮我管理帮我创建这个类对象):一般都注解在DAO类上方(数据持久层上方)
@Service: 一般都注解在service层类上方
@Controller:一般都注解在controller上方
这三个可以活用,因为它们三个效果都是一样的,它主要告诉spring把这个类给我创建出来写三个不同的注解就是为了提高程序的可读性。我一看@Serivce就知道这是service层。一看@Controller(英语不好,百度翻译是"控制器")就是Controller。经常用到的是@Serivce
和@Controller
;@Repository
不用了,之后是MyBatis
了