程序员人生 网站导航

Spring常用注解

栏目:框架设计时间:2015-02-28 08:13:14

经常使用注解有以下几种:

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


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

@Autowired

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

        ・@Repository

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

        ・@Service

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

        ・@Controller

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

        ・@Component

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

@Qualifier("")

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

@WebServelet(urlPattern="")

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

@Entity

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

@Table(name="")

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

    ・@Id

        标明该字段为primary key

    ・@Column(length=,nullable=)

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

    ・@GeneratedValue(strategy=GenerationType.AUTO)

        标明该字段为自增字段。

@Scope("")

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

------分隔线----------------------------
------分隔线----------------------------

最新技术推荐