L'annotation est un mécanisme similaire aux commentaires. L'ajout d'annotations au code peut utiliser les informations ultérieurement. Contrairement aux annotations, les annotations sont à voir. La machine virtuelle Java ne sera pas compilée et les annotations ne seront pas compilées, mais nous pouvons lire les informations contenues dans les annotations via le mécanisme de réflexion. Les annotations utilisent le mot-clé @interface et héritent de java.lang.annotition.Annotition
Le framework Spring nous fournit la fonction d'annotation.
Utiliser la programmation d'annotations consiste principalement à remplacer les fichiers XML et à accélérer le développement. Cependant, l'utilisation de fichiers XML consiste à modifier le programme pour modifier le code source. Si vous n'utilisez pas de fichiers XML maintenant, cela ne violerait-il pas le principe d'ouverture et de fermeture ? Cependant, les annotations sont également meilleures que les annotations. L'utilisation d'annotations ne nécessite pas la configuration d'autant de fichiers XML. La chose la plus importante est une efficacité de développement élevée. .
Lorsque les annotations ne sont pas utilisées, de nombreuses balises
Le framework Spring utilise des annotations en couches.
Couche de persistance : @Repository ;
Couche de service : @Service
Couche de contrôle : @Controller
1 Pour utiliser des annotations, vous devez ajouter des fichiers d'espace de noms et de contraintes au fichier de configuration<.>
<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{ //。。。。 }
est équivalent à
<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; } }
L'annotation @Controller est équivalente à
<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());