1. 程式人生 > >springmvc+spring+mybatis常用註解

springmvc+spring+mybatis常用註解

@Service用於標註業務層元件

@Controller用於標註控制層元件

@Repository用於標註資料訪問元件,即DAO元件

@Component泛指元件,當元件不好歸類的時候,我們可以使用這個註解進行標註。

使用控制器註解,則對應到之前的配置檔案生成:

<bean id =“”class =“”/>


@Autowired:採用型別的方式完成自動裝配

@Resource:採用名稱+型別的方式完成自動裝配(比較保險)


@ResponseBody註解(應用於控制器)。這個註解是什麼呢,就是當你引入了傑克遜這個罐包的時候,再使用這個註解,用用SpringMVC就可以自動將它所修飾的方法的返回值轉換為JSON格式,從而不需要人為的去轉換!這個註解加上那個罐子包,可以完美的將所有的Java的物件轉換為JSON格式!


    @NotEmpty(message =“使用者名稱不能為空”)  
    private String username;  
    @NotEmpty(message =“密碼不能為空”)  
    private String password;

private List <Role> roleList; //一個使用者具有多個角色  

下面配置使用者 - 角色的多對多關係

    @ManyToMany  
    @JoinTable(name =“t_user_role”,joinColumns = {@ JoinColumn(name =“user_id”)},inverseJoinColumns = {@ JoinColumn(name =“role_id”)})  
    public List <Role> getRoleList(){  
        return roleList ;  


    }  
    公共無效setRoleList(列表<角色>的的RoleList){  
        this.roleList =的的RoleList;  
    }  

@短暫的

表示該屬性並非一個到資料庫表的欄位的對映,ORM框架將忽略該屬性。
如果一個屬性並非資料庫表的欄位對映,就務必將其標示為@Transient,否則,ORM框架預設其註解為@Basic


(1)ManyToOne(多對一)單向:不產生中間表,但可以用@Joincolumn(name =“”)來指定生成外來鍵的名字,外來鍵在多的一方表中產生!

(2)OneToMany(一對多)單向:會產生中間表,此時可以用@onooMany @Joincolumn(name =“”)避免產生中間表,並且指定了外來鍵的名字(別看@joincolumn在一中寫著,但它存在在多的那個表中)

(3)OneToMany,ManyToOne雙向(如個不在@OneToMany中加mappedy屬性就會產生中間表,此時通常在@ManyToOne的註解下再添上註解@Joincolumn(name =“”)來指定外來鍵的名字(說明:多的一方為關係維護端,關係維護端負責外來鍵記錄的更新,關係被維護端沒有權利更新外來鍵記錄)!(@ OneToMany(mappedBy =“一對多”)中,多中一的屬性“)出現mapby為被維護端|||預設為延遲載入)

用例:@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name =“child_id”)
private OrderChild orderChild;

  @OneToMany(mappedBy =“orderChild”,fetch = FetchType.LAZY,cascade = {CascadeType.MERGE})
  @ NotFound(action = NotFoundAction.IGNORE)//代表可以為空,允許為null
  private List <OrderChildGoods> goodsList;

冬眠中@ManyToOne預設是立即載入,@一對多預設是懶載入

但是如果加上了@NotFound之後設定的取= FetchType.LAZY是不起作用的,也就是設定@NotFound後變為了立即載入渴望