注解

来源:互联网 发布:淘宝新店访客少 编辑:程序博客网 时间:2024/05/06 18:38

    hibernate

    @Entity映射实体类,表示该类可以通过注解进行操作

    @Table(name="t_code")映射数据库表

    @Id表示定义主键

    @GeneratedValue定义主键生成策略

    1. strategy 指定生成的策略(JPA定义的),这是一个GenerationType。默认是GenerationType. AUTO  
    2. GenerationType.AUTO 主键由程序控制  
    3. GenerationType.TABLE 使用一个特定的数据库表格来保存主键  
    4. GenerationType.IDENTITY 主键由数据库自动生成(主要是自动增长类型)  
    5. GenerationType.SEQUENCE 根据底层数据库的序列来生成主键,条件是数据库支持序列。(这个值要与generator一起使用)  
    6. generator 指定生成主键使用的生成器(可能是orcale中的序列)。

     

    @OneToOne(mappedBy="manbean",cascade=CascadeType.ALL)设置一对一关联

    cascade属性有五个值CascadeType.PERSIST(级联新建),CascadeType.REMOVE(级联删除),CascadeType.REFRESH(级联刷新),CascadeType.MERGE(级联更新),CascadeType.ALL(全部四项)  

     

    @ManyToOne 多对一的映射,该注解标注的属性通常是数据库表的外键

    1. optional:是否允许该字段为null,该属性应该根据数据库表的外键约束来确定,默认为true
    2. fetch:表示抓取策略,默认为FetchType.EAGER
    3. cascade:表示默认的级联操作策略,可以指定为ALL,PERSIST,MERGE,REFRESH和REMOVE中的若干组合,默认为无级联操作
    4. targetEntity:表示该属性关联的实体类型.该属性通常不必指定,ORM框架根据属性类型自动判断targetEntity.

    @JoinColumn关联字段name:该字段的名称.

    @OneToMany一对多的关联,该属性应该为集合类型,在数据库中并没有实际字段.

    1. fetch:表示抓取策略,默认为FetchType.LAZY
    2. cascade:表示级联操作策略,对于OneToMany类型的关联非常重要,通常该实体更新或删除时,其关联的实体也应当被更新或删除

    @ManyToMany多对多的关联

    1. targetEntity:表示多对多关联的另一个实体类的全名,例如:package.Book.class
    2. mappedBy:表示多对多关联的另一个实体类的对应集合属性名称
    3. 两个实体间相互关联的属性必须标记为@ManyToMany,并相互指定targetEntity属性,
    4. 有且只有一个实体的@ManyToMany注解需要指定mappedBy属性,指向targetEntity的集合属性名称

     

    @MappedSuperclass 可以将超类的JPA注解传递给子类,使子类能够继承超类的JPA注解

     

    @Column(name="userName")定义该属性对应的列名,如与数据库列名相同可省略,有如下的属性

    1. name 可选,列名(默认值是属性名)  
    2. unique 可选,是否在该列上设置唯一约束(默认值false)  
    3. nullable 可选,是否设置该列的值可以为空(默认值false)  
    4. insertable 可选,该列是否作为生成的insert语句中的一个列(默认值true)  
    5. updatable 可选,该列是否作为生成的update语句中的一个列(默认值true)  
    6. columnDefinition 可选,为这个特定列覆盖sql ddl片段(这可能导致无法在不同数据库间移植)  
    7. table 可选,定义对应的表(默认为主表)  
    8. length 可选,列长度(默认值255)  
    9. precision 可选,列十进制精度(decimal precision)(默认值0)  
    10. scale 可选,如果列十进制数值范围(decimal scale)可用,在此设置(默认值0)  

     

     @SequenceGenerator 声明一个数据库序列,有如下属性

    1.  name 表示该表主键生成策略名称,它被引用在@GeneratedValue中设置的“gernerator”值中  
    2. sequenceName 表示生成策略用到的数据库序列名称。  
    3. initialValue 表示主键初始值,默认为0.  
    4. allocationSize 每次主键值增加的大小,例如设置成1,则表示每次创建新记录后自动加1,默认为50.  

     

    @Transient表示该属性并非一个到数据库表的字段的映射,ORM框架将忽略该属性.

     

     

     

     

     

    Spring

    @Resource  默认按名称装配,当找不到与名称匹配的bean才会按类型装配。

    @Configuration把一个类作为一个IoC容器,它的某个方法头上如果注册了@Bean,就会作为这个Spring容器中的Bean。

    @Scope注解 作用域

    @Lazy(true) 表示延迟初始化

    @Service用于标注业务层组件

    @Controller用于标注控制层组件(如struts中的action)

    @Repository用于标注数据访问组件,即DAO组件。

    @Component泛指组件,当组件不好归类的时候,我们可以使用这个注解进行标注

    @Scope用于指定scope作用域的(用在类上)

    @PostConstruct用于指定初始化方法(用在方法上)

    @PreDestory用于指定销毁方法(用在方法上)

    @DependsOn:定义Bean初始化及销毁时的顺序

    @Primary:自动装配时当出现多个Bean候选者时,被注解为@Primary的Bean将作为首选者,否则将抛出异常

    @Autowired 默认按类型装配,如果我们想使用按名称装配,可以结合@Qualifier注解一起使用。如下:

    @Autowired @Qualifier("personDaoBean") 存在多个实例配合使用

     

    @Resource默认按名称装配,当找不到与名称匹配的bean才会按类型装配。

    @PostConstruct 初始化注解

    @PreDestroy 摧毁注解 默认 单例  启动就加载

    @Async异步方法调用

     

    springMVC

    @Controller 负责注册一个bean 到spring 上下文中

    @RequestMapping用来定义访问的URL,你可以为整个类定义一个或者为每个方法指定一个

    @PathVariable用于方法中的参数,表示方法参数绑定到地址URL的模板

    @ModelAttribute 应用于方法参数,参数可以在页面直接获取,相当于request.setAttribute(,) 

    @ResponseBody可直接放在方法上,表返回类型将会直接作为HTTP响应字节流输出(不被放置在Model,也不被拦截为视图页面名称)。可以用于ajax

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

0 0
原创粉丝点击