アノテーションは、コードにアノテーションを追加することで、後でその情報を利用できる仕組みです。アノテーションとは異なり、アノテーションは私たちが見るものであり、Java 仮想マシンはコンパイルされませんが、リフレクション メカニズムを通じてアノテーション内の情報を読み取ることができます。アノテーションはキーワード @interface を使用し、java.lang.annotition.Annotition を継承します
Spring フレームワークはアノテーション関数を提供します。
アノテーションプログラミングの使用は、主に XML ファイルを置き換えて開発を高速化することです。しかし、xml ファイルを使用するということは、プログラムを変更してソース コードを変更することです。今、xml ファイルを使用しない場合、それは開閉の原則に違反しませんか。ただし、アノテーションを使用すると、それほど多くの XML ファイルを構成する必要がなく、開発効率が高くなります。 。
アノテーションが使用されない場合、クラス オブジェクトを宣言するには、Spring フレームワークの設定ファイル applicationContext.xml ファイルで多くの
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 ">
<context:component-scan base-package="com.lsz.spring" />
Package com.lsz.spring; @Repository public class UserDao{ //。。。。 }
は、構成ファイルの
<bean id="userDao" class="com.lsz.spring.UserDao" />
@Service(value="testService") public classTestService { @Resource//相当于自动装配 private UserDao userDao ; public UserDao getUserDao() { returnuserDao; } public void setUserDao(UserDao userDao) { this.userDao= userDao; } }
<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());