Springでカスタム@ Requiredスタイルのアノテーションを定義する
@Required annotation
は、特定のプロパティが設定されていることを確認するために使用されます。何らかの理由で既存のプロジェクトをSpringフレームワークに移行したり、@ Requiredスタイルのアノテーションを持っている場合、@Requiredアノテーションと同等の@カスタムスタイルのアノテーションを定義することができます。
この例では、
@ Required`アノテーションと同等の
@ Mandatory
というカスタム
@ Required-style`アノテーションを作成します。
1. @Mandatoryインターフェースを作成する
package com.mkyong.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.mkyong.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.mkyong.common.Mandatory"/> </bean> <bean id="CustomerBean" class="com.mkyong.common.Customer"> <property name="action" value="buy"/> <property name="type" value="1"/> </bean> </beans>