ホームページ  >  記事  >  Java  >  Spring Framework 学習 (5) アノテーション

Spring Framework 学習 (5) アノテーション

黄舟
黄舟オリジナル
2016-12-29 13:17:571219ブラウズ

アノテーションは、コードにアノテーションを追加することで、後でその情報を利用できる仕組みです。アノテーションとは異なり、アノテーションは私たちが見るものであり、Java 仮想マシンはコンパイルされませんが、リフレクション メカニズムを通じてアノテーション内の情報を読み取ることができます。アノテーションはキーワード @interface を使用し、java.lang.annotition.Annotition を継承します


Spring フレームワークはアノテーション関数を提供します。
アノテーションプログラミングの使用は、主に XML ファイルを置き換えて開発を高速化することです。しかし、xml ファイルを使用するということは、プログラムを変更してソース コードを変更することです。今、xml ファイルを使用しない場合、それは開閉の原則に違反しませんか。ただし、アノテーションを使用すると、それほど多くの XML ファイルを構成する必要がなく、開発効率が高くなります。 。
アノテーションが使用されない場合、クラス オブジェクトを宣言するには、Spring フレームワークの設定ファイル applicationContext.xml ファイルで多くの 60e23eb984d18edbb092da6b8f295aba タグを設定する必要があります。アノテーションを使用すると、構成ファイルにタグを追加する必要がなく、代わりに、対応するクラスの「アノテーション」位置に命令を追加します。具体的な導入は次のとおりです:

Spring フレームワークは階層化されたアノテーションを使用します。
永続層: @Repository;
サービス層: @Service
コントロール層: @Controller
1. アノテーションを使用するには、構成ファイルに名前空間と制約ファイルを追加する必要があります

<beans ...
xmlns:context="http://www.springframework.org/schema/context"
xsi:schemaLocation="
... http://www.springframework.org/schema/contexthttp://www.springframework.org/schema/context/spring-context-2.5.xsd ">

2.注釈 。


<context:component-scan base-package="com.lsz.spring" />

3、永続層アノテーション


Package com.lsz.spring;
 
@Repository
public class UserDao{
//。。。。
}

@Repository

は、構成ファイルの

<bean id="userDao" class="com.lsz.spring.UserDao" />

4、サービス層アノテーション

@Service(value="testService")
public classTestService {
 
@Resource//相当于自动装配
private UserDao userDao ;
 
      public UserDao getUserDao() {
              returnuserDao;
      }
      public void setUserDao(UserDao userDao) {
             this.userDao= userDao;
      }
 
}
@Resourceのオブジェクト間の関係の組み合わせに相当します。デフォルトのメソッドはbyNameです。関連付けられたオブジェクトが名前に基づいて見つからない場合は、byType を使用して検索が続行されます。

@Service アノテーションは
<bean id="testService" class="com.lsz.spring.UserService" />

5 に相当し、制御層のアノテーション
@Controller(value="ua")
@Scope(value="prototype")
public class UserAction {
 
     @Resource
     private UserService userService ;
 
     public UserService getUserService() {
          returnuserService;
     }
}

@Controller アノテーションは

<bean id="ua" class="com.lsz.spring.UserAction " />


これら 3 つの層のアノテーション キーワードは @ に置き換えることができます。成分。 アノテーションを使用してオブジェクトを宣言します。デフォルトでは、生成される ID 名はクラス名の最初の文字が小文字になります。

6. Spring 環境から Action オブジェクトを取得します。
ServletContext application =request.getSession().getServletContext();
ApplicationContextac = WebApplicationContextUtils.getWebApplicationContext(application);
 
UserAction useraction = (UserAction)ac.getBean("ua");//获取控制层对象

response.setContentType("text/html;charset=GBK");//设置编码
PrintWriter out =response.getWriter();

//分别将三个层的对象打印出来。
out.println("Action:"+userAction);
out.println("Service:"+userAction.getUserService());
out.println("Dao:"+userAction.getUserService().getUserDao());

上記は Spring Framework 学習 (5) のアノテーションの内容です。その他の関連コンテンツについては、PHP 中国語 Web サイト (www.php.cn) に注目してください。



声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。