1. 程式人生 > >SSH所有註解 +註解整合

SSH所有註解 +註解整合

SSH註解(不用死記硬背,有個印象就好)

https://blog.csdn.net/towerljyt/article/details/80293678

----------Spring-----------

---建立物件---

@Component(美 [kəm'ponənt]啃破門特)

作用:相當於bean.xml檔案中,bean標籤使用<bean id=”” class=”” />

屬性:value:給bean取一個名稱,相當於bean標籤的id屬性。

細節:如果不指定,預設使用類的名稱(首字母小寫)。寫法上value可以省略。

 

 

[email protected]衍生註解(3個)

[email protected] (美 [kən'trolɚ]啃磋o le)

作用:一般用於表現層物件(Action)

 

[email protected]

作用:一般用於業務層物件(service)

 

[email protected] (英 [rɪ'pɒzɪt(ə)rɪ]瑞趴滋特蕊)

作用:一般用於持久物件(dao)

 

 

 

@Scope (英 [skəʊp]斯詬普

)

作用:設定bean的作用範圍

屬性:value

屬性取值:

singleton:單例。預設值

prototype:多例 (Action 注意: 一定是多例)

request:web專案中的一次請求範圍

session:web專案中的會話範圍

globalsession:web專案中全域性會話範圍(portlet)

 

 

---注入資料---

 

@Autowired (英 ['ɔːtəʊ] ['waɪəd] 窩頭 外爾的)

作用:根據bean的型別自動注入

細節:如果spring容器中同一個型別有多個bean存在,則需要根據變數名稱和bean的id進行比較

。如果有相同則能注入成功;否則注入失敗。

 

 

@Qualifier (英 ['kwɒlɪfaɪə(r)] kuo 立 fai 兒的)

作用:在注入資料時,可以配合@Autowired註解一起使用。在按照型別注入的基礎上,按照bean的id注入。

屬性:value:指定注入bean的id

細節:1.在給的成員變數注入資料時,不能單獨使用,需要配合@Autowired註解一起使用

2.在給方法的形參注入資料時候,可以單獨使用

 

 

@Resource

作用:按照bean的id注入資料。

屬性:name:指定注入bean的id

type:指定注入bean的型別

細節:預設情況下(不指定屬性),它會先根據變數名稱注入,注入不成功;再根據型別注入。

 

以上三個註解,都是給bean型別注入資料,不能注入基本型別和字串String

 

 

@Value

作用:基本型別和String型別注入資料。

屬性:value:注入的資料值

 

 

 

---和生命週期相關的註解---

 

@PostConstruct (post [kən'strʌkt] post 抗 斯 拽 科特)

作用:指定在spring容器建立物件時(構造方法執行後立即執行),呼叫的方法。該方法一般都是執行一些初始化的操作。

細節:相當於xml配置中bean標籤的init-method屬性

 

@PreDestory

作用:指定在spring容器銷燬前,呼叫的方法。該方法一般都是執行一些釋放資源的操作。

細節:相當於xml配置中bean標籤的destroy-method屬性

 

 

 

---Junit用到---

 

 

 

 

 

 

 

 

----------Hibernate---------

 

hibernate註解使用到的是jpa的註解,用來代替xxx.hbm.xml那個檔案

都是放在Bean物件中使用的

 

@Entity

作用:宣告該類是一個JPA標準的實體類

 

@Table

作用:指定實體類關聯的表,注意如果不寫表名,預設使用類名對應表名。

屬性:name 指明資料庫的表

 

@Column (英 ['kɒləm] ka lou)

作用:指定實體類屬性對應的表字段,如果屬性和欄位一致,可以不寫

屬性:name 指明資料庫對應的欄位名

 

[Id生成策略

@Id

作用:宣告屬性是一個OID,對應的一定是資料庫的主鍵欄位

 

@GenerateValue ( 美 ['dʒɛnəret] value 狙勒瑞特 Value)

 

作用:宣告OID的主鍵策略

 

@SequenceGenerate( 美 ['sikwəns]['dʒɛnəret] C可蕊斯 狙勒瑞特)

作用:使用SEQUENCE策略時,用於設定策略的引數

 

 

1.在資料庫主鍵為整型 自增長時寫法:

 

2.在資料庫主鍵為VARCHAR等非整型時寫法:

3.元件為uuid時寫法

 

]

 

@TableGenerate

作用:使用TABLE主鍵策略時,用於設定策略的引數

 

@JoinTable

作用:關聯查詢時,表與表是多對多的關係時,指定多對多關聯表中間表的引數

 

@JoinColumn

作用:關聯查詢時,表與表是一對一、一對多、多對一以及多對多的關係時,宣告表關聯的外來鍵欄位作為連線表的條件。必須配合關聯表的註解一起使用

 

@OneToMany

作用:關聯表註解,表示對應的實體和本類是一對多的關係

 

@ManyToOne

作用:關聯表註解,表示對應的實體和本類是多對一的關係

 

@ManyToMany

作用:關聯表註解,表示對應的實體和本類是多對多的關係

 

 

 

 

----------Struts------------

 

@NameSpace

出現的位置:它只能出現在 package 上或者 Action 類上一般情況下都是寫在 Action 類上。

作用:指定當前 Action 中所有動作方法的名稱空間。

屬性:value :指定名稱空間的名稱。寫法和 xml 配置時一致。不指定的話,預設名稱空間是""。

 

 

@ParentPackage

出現的位置:只能出現在 package 上或者 Action 類上。一般情況下都是寫在 Action 類上。

作用:指定當前動作類所在包的父包。(eg:"struts-default")

value :指定父包的名稱

 

@Action

出現的位置:它只能出現在 Action 類上或者動作方法上。一般情況下都是寫在動作方法上。

作用:指定當前動作方法的動作名稱。也就是 xml 配置時 action 標籤的 name 屬性。

屬性:

value :指定動作名稱

results[]: :它是一個陣列,資料型別是註解。用於指定結果檢視。此屬性可以沒有當沒有

該屬性時,表示不返回任何結果檢視。即使用 response 輸出響應正文。

interceptorRefs[] :它是一個數組,資料型別是註解。用於指定引用的攔截器。

 

@Result

出現的位置:它可以出現在動作類上,也可以出現在 Action 註解中。

作用:出現在類上,表示當前動作類中的所有動作方法都可以用此檢視。

出現在 Action 註解中,表示當前 Action 可用此檢視。

屬性:

name :指定邏輯結果檢視名稱。

type :指定前往檢視的方式。例如:請求轉發,重定向,重定向到另外的動作。

location :指定前往的地址。可以是一個頁面,也可以是一個動作。

 

@Results

出現的位置:它可以出現在動作類上,也可以出現在 Action 註解中

作用:用於配置多個結果檢視。

屬性:

value :它是一個陣列,資料型別是 result 註解

 

@InterceptorRef

出現的位置:它可以出現在動作類上或者 Action 註解中。

作用:用於配置要引用的攔截器或者攔截器棧

屬性:

value :用於指定攔截器或者攔截器棧

 

SSH-crm搭建(註解版本)

--1.導hibernate包(13基本包+hibernate的c3p0包3個)+mysql驅動包

 

--2.(資料準備表等)編寫實體類

 

--3匯入spring包(IOC+AOP+tx+-web(可後面整合導)-)

4.1編寫持久層dao

4.2編寫業務層service

 

註解事物

5.編寫spring配置檔案

--5.1applicationContext.xml

--5.2applicationContext-dao.xml

 

 

 

--5.3applicationContext-tx.xml

 

--6測試hibernate與spring整合

測試出現的問題:<property name="jdbcUrl" value="jdbc:mysql:///tower" />

 

 

--7.struts配置

匯入前端檔案和struts包(struts基礎包+struts註解+spring-web(spring與struts整合包))(eclipse需要導jstl包)

 

 

 

 

 

--8.編寫struts配置檔案

 

--9.編寫web.xml配置檔案

<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

xmlns="http://java.sun.com/xml/ns/javaee"

xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"

id="WebApp_ID" version="3.0">

<display-name>myssh-v3</display-name>

<!-- 配置全域性引數,指定spring配置檔案的位置 -->

<context-param>

<param-name>contextConfigLocation</param-name>

<param-value>classpath:spring/applicationContext.xml</param-value>(classpath:必寫)

</context-param>

 

<!-- 配置監聽器ContextLoaderListener,說明: 1.ContextLoaderListener監聽器,它會監聽ServletContext物件的建立和銷燬。預設它是載入WEB-INF/目錄下的檔案,

並且檔名稱只能是applicationContext.xml 2.applicationContext.xml配置檔案,需要與其它的配置檔案統一放在一起,方便維護管理。此時只需要配置contextConfigLocation

屬性,告訴監聽器配置檔案的位置即可。 -->

<listener>

<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>

</listener>

 

<!-- 配置核心過濾器 -->

<!-- 配置前端控制器 -->

<filter>

<filter-name>crm</filter-name>

<filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>

 

<!-- 指定struts2配置檔案位置 -->

<init-param>

<param-name>config</param-name>

<param-value>struts-default.xml,struts-plugin.xml,struts/struts.xml</param-value>

</init-param>

</filter>

 

<filter-mapping>

<filter-name>crm</filter-name>

<url-pattern>/*</url-pattern>

</filter-mapping>

 

</web-app>

 

 

--10.編寫web.xml配置檔案

 

10.1. 編寫動作類物件(與前端路徑匹配)

 

 

@Autowired

// 有註解不用set方法

private CustomerService service;

private Customer c = new Customer();

private List<Customer> customers;

 

@Override

public Customer getModel() {

return c;

}

 

// -----------------getter setter----------------------------

public List<Customer> getCustomers() {

return customers;

}

 

public void setCustomers(List<Customer> customers) {

this.customers = customers;

}

 

// ----------操作方法------------

 

/**

* 跳轉到新增客戶頁面

*/

@Action(value = "addCustomerUI", results = { @Result(name = "addCustomerUI", location = "/jsp/customer/add.jsp") })

public String addCustomerUI() {

return "addCustomerUI";

}

 

/**

* 查詢客戶列表

*/

@Action(value = "findCustomers", results = { @Result(name = "findCustomers", location = "/jsp/customer/list.jsp") })

public String findCustomers() {

customers = service.findcustomers();

return "findCustomers";

}

 

/**

* 儲存客戶

*/

@Action(value = "addCustomer", results = { @Result(name = "addCustomer", type = "redirect", location = "findCustomers.action") })

public String saveCustomer() {

service.saveCustomer(c);

return "addCustomer";

}

-

}

--------------------- 本文來自 towerLJYT 的CSDN 部落格 ,全文地址請點選:https://blog.csdn.net/towerljyt/article/details/80293678?utm_source=copy