@Required註解是用來確保特定屬性已設定。如果您遷移現有專案到Spring框架或有自己的@Required-style註解不管是什麼原因,Spring允許您定義自定義@Required-style註解,相當於@Required註解。
在這個例子中,您將建立一個名為 @Mandatory 客製化 @Required-style 註解,相當於@Required註解。
1.建立@Mandatory介面
package com.tw511.common;
import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;
@Retention(RetentionPolicy.RUNTIME)
@Target(ElementType.METHOD)
public @interface Mandatory {
}
2.應用它到屬性
package com.tw511.common;
public class Customer
{
private Person person;
private int type;
private String action;
@Mandatory
public void setPerson(Person person) {
this.person = person;
}
//getter and setter methods
}
3.註冊它
包函新@Mandatory註釋到「RequiredAnnotationBeanPostProcessor' 類。
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-2.5.xsd">
<bean
class="org.springframework.beans.factory.annotation.RequiredAnnotationBeanPostProcessor">
<property name="requiredAnnotationType" value="com.tw511.common.Mandatory"/>
</bean>
<bean id="CustomerBean" class="com.tw511.common.Customer">
<property name="action" value="buy" />
<property name="type" value="1" />
</bean>
</beans>
4. 完成
這樣做,建立了一個新的自定義命名 @Required-style的@Mandatory 註解,相當於 @Required 註解。