spring中常用注解

@Configuration把一个类作为一个IoC容器,它的某个方法头上如果注册了@Bean,就会作为这个Spring容器中的Bean。 
@Scope注解 作用域 
@Lazy(true) 表示延迟初始化 
@Service用于标注业务层组件、 
@Controller用于标注控制层组件(如struts中的action) 
@Repository用于标注数据访问组件,即DAO组件。 
@Component泛指组件,当组件不好归类的时候,我们可以使用这个注解进行标注。 
@Scope用于指定scope作用域的(用在类上) 
@PostConstruct用于指定初始化方法(用在方法上) 
@PreDestory用于指定销毁方法(用在方法上) 
@Resource 默认按名称装配,当找不到与名称匹配的bean才会按类型装配。 
@DependsOn:定义Bean初始化及销毁时的顺序 
@Primary:自动装配时当出现多个Bean候选者时,被注解为@Primary的Bean将作为首选者,否则将抛出异常 
@Autowired 默认按类型装配,如果我们想使用按名称装配,可以结合@Qualifier注解一起使用 
@Autowired @Qualifier(“personDaoBean”) 存在多个实例配合使用

@Entity(name="xxx")  name属性指定数据库中的表名,如没有name则默认表名与实体类同名,默认为 SnakeCaseStrategy(命名策略 )为表名

Spring中常用的注解(@Entity,@Table,@Column,@Repository,@Service)

        这里简单介绍Hibernate的Annotation注解
 
        一、声明实体
        @Entity
            对实体注释。任何Hibernate映射对象都要有这个注释
        @Table
           声明此对象映射到数据库的数据表,通过它可以为实体指定表(talbe),目录(Catalog)和schema的名字。该注释不是必须的,如果没有则系统使用默认值(实体的短类名)。
         @Version
             该注释可用于在实体Bean中添加乐观锁支持。
 
        二、声明主键
        @Id
           声明此属性为主键。该属性值可以通过应该自身创建,但是Hibernate推荐通过Hibernate生成
        @GeneratedValue
           指定主键的生成策略。有如下四个值
               TABLE:使用表保存id值
               IDENTITY:identitycolumn
               SEQUENCR :sequence
               AUTO:根据数据库的不同使用上面三个
 
        三、声明普通属性
        @Column
           声明该属性与数据库字段的映射关系。
            1   @Column(nam=”category_name” length=20)
            2    Public void getCategoryName(){undefined
            3      Return this.categoryName;
            4  } 

        注意:
          1、  当POJO有属性不需要映射的时候一定要用@Transitent修饰,该注释表示此属性与表没有映射关系,只是一个暂时的属性。
          2、  @Lob注释表示该属性持久化为Blob或者Clob类型,具体取决于属性的类型。
 
        四、声明关联关系
        一对多关联关系
        @OneToMany(mappedBy=” person”,cascade=CascadeType.ALL,fetch=FetchType.LAZY)
         一对多声明
        @ManyToOne(cascade=CascadeType.REFRESH,)
        @JoinColumn
        多对一声明 ,声明为双向关联
        一对一关联关系
        @OneToOne(optional= true,cascade =CascadeType.ALL, mappedBy = “person”)
        一对一关联声明
        @OneToOne(optional = false, cascade = CascadeType.REFRESH)
        @JoinColumn(name = “Person_ID”, referencedColumnName = “personid”,unique = true)
        声明为双向关联

        多对多关联关系
         @ManyToMany(mappedBy= “students”)
        多对多关联声明。
        @ManyToMany(cascade = CascadeType.PERSIST, fetch = FetchType.LAZY)
        @JoinTable(name = “Teacher_Student”,
        joinColumns = {@JoinColumn(name = “Teacher_ID”, referencedColumnName =“teacherid”)},
        inverseJoinColumns = {@JoinColumn(name = “Student_ID”, referencedColumnName =“studentid”)})
 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值