Spring常用注解
来源:程序员人生 发布时间:2015-02-28 08:13:14 阅读次数:3639次
经常使用注解有以下几种:
@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="")
・@Id
标明该字段为primary key
・@Column(length=,nullable=)
标明该字段的属性,对应于table在disign时候的各项属性。
・@GeneratedValue(strategy=GenerationType.AUTO)
标明该字段为自增字段。
@Scope("")
该注解限定该类是单例还是原型。
选择prototype或singleton。在不进行该标注的时候,spring默许为单例singleton。
生活不易,码农辛苦
如果您觉得本网站对您的学习有所帮助,可以手机扫描二维码进行捐赠