spring+JPA的注解(自己使用)

依赖注入的手工装配的两种方式注解

@Resource  一般用这种  按照属性的名字去找XML种BEEN 来注入  如果没有找到匹配的会按照类型去找

@Autowired  按照类型去找

可以写在属性上或者Set方法上

依赖注入的自动装配的方式  不建议使用,会出现不可遇见的装配结果


通过在classpath自动扫描方式把组件纳入 spring容器中管理
<context:component-scan base-package="扫描的包">  base-package 为需要扫描的包(含子包)

他可以在类路径下寻找标注了@Component,@Service,@Controller,@Repository注解的类,
并把这些类纳入进spring容器中管理,他的作用和在XML文件中使用bean节点配置组件是一样的,
要使用自动扫描机制,需要打开它的配置。

@Service 用于标注业务层组件。
@Controller 用于标注控制层组件(如struts 中的 action)
@Repository 用于标注数据访问组件(DAO组件)
@Component 泛指组件,当组件不好归纳的时候,我们可以使用这个注解进行标注
 
 配合
 @Scope("prototype")使用  bean的作用域配置
 @PostConstruct 写在方法上  表示该方法为初始方


JPA中 用@PersistenceContext 得到EntityManager em;

事务
@Transactional 类注释
如果方法不使用事务(如get* find*)
在方法上用
@Transactional(propagation=Propagation.NOT_SUPPORTED,readOnly=true)
该方法就不在使用事务控制

 

 

 

@Temporal(TemporalType.DATE)  时间类型

@Enumerated(EnumType.STRING) @Column(length=5,nullable=false) 枚举

 

 

多对多

    @ManyToMany(cascade=CascadeType.REFRESH, fetch=FetchType.EAGER)
    @JoinTable(name="employee_department", joinColumns=@JoinColumn(name="username"),
            inverseJoinColumns=@JoinColumn(name="department_id"))
    public Set<Department> getDepartments() {
        return departments;
    }

----------------------------------------------------------------------------------

@ManyToMany(mappedBy="departments", cascade=CascadeType.REFRESH)
    public Set<Employee> getEmployees() {
        return employees;
    }

 

你可能感兴趣的:(spring,bean,struts,jpa,配置管理)