首页 > 代码库 > Spring常用注解

Spring常用注解

常用注解有以下几种:

@Autowired
@Qualifier("")
@Repository
@Service
@Component
@Controller
@WebServelet
@Entity
@Table(name="")
@Id
@Column(length=)
@GeneratedValue(strategy=GenerationType.AUTO)
@Scope("")


声明:用到以上注解的类,一般是没有在xml文件中显示地声明的bean。
通过在类上使用 @Repository、@Component、@Service 和 @Constroller 注解,Spring会自动创建相应的 BeanDefinition 对象,
并注册到 ApplicationContext 中。这些类就成了 Spring受管组件。
当一个 Bean 被自动检测到时,会根据那个扫描器的 BeanNameGenerator 策略生成它的 bean名称。默认情况下,对于包含 name 属性的 @Component、@Repository、 @Service 和@Controller,会把 name 取值作为 Bean 的名字。如果这个注解不包含 name值或是其他被自定义过滤器发现的组件,默认 Bean 名称会是小写开头的非限定类名。在使用@Qualifier注入的时候按照此规则进行注入。

@Autowired

        一般用于成员变量的自动赋值,将要赋给该变量的对象,可以在xml中声明为bean,则类型自动匹配;
        如果未在xml中声明,则需要该对象标注成了“组件”,能够被spring所识别。
        标注组件的方式有以下几种:

        ·@Repository

             该标注只能用于对DAO层实现类的组件的标注,因为该类不止是将类识别为Bean,同时还将数据访问
             的相关异常封装为Spring自己的数据访问异常类型。
             Spring本身提供了一个丰富的并且是与具体的数据访问技术无关的数据访问异常结构,
             用于封装不同的持久层框架抛出的异常,使得异常独立于底层的框架。

        ·@Service

              该标注一般用于对业务层类的组件标注。

        ·@Controller

              该标注一般用于对控制层类的组件标注。

        ·@Component

             该标注一般用于对”中立层“类的组件标注。
            之所以中立,是因为所在类没有明显的角色划分不属于MVC框架三层中的某个角色,可以是工具类等。

@Qualifier("")

    由于存在继承等特性,存在给父类赋值为子类的情况(使用@Autowired),例如:给DAO的某个类赋值为DAOImp的某个实例,
    则在该DAOImp类上不仅仅标注@Repository,在引用到该子类的地方(@Autowired下面)应紧接着标注@Qualifier(""),
    冒号中标明该类的类名并且首字母小写。

@WebServelet(urlPattern="")

    用于标注Servlet类,可定义访问路径urlPattern。

@Entity

    常用语数据表类标注,标注了@Entity的类,必须是model层中的一个数据库的表的封装。

@Table(name="")

    紧跟@Entity,用于标注对应于数据库中的表名

    ·@Id

        标明该字段为primary key

    ·@Column(length=,nullable=)

        标明该字段的属性,对应于table在disign时候的各项属性。

    ·@GeneratedValue(strategy=GenerationType.AUTO)

        标明该字段为自增字段。

@Scope("")

        该注解限定该类是单例还是原型。
        选择prototype或singleton。在不进行该标注的时候,spring默认为单例singleton。

Spring常用注解