アノテーションは、コードにアノテーションを追加することで、後でその情報を利用できる仕組みです。アノテーションとは異なり、アノテーションは私たちが見るものであり、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 を使用して検索が続行されます。
<bean id="testService" class="com.lsz.spring.UserService" />
@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 " />
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());