关于SSH注解,有三种:
1、由于spring框架org.springframework.*提供的注解,这个注解主要是解决程序员不用多次在spring的配置文件applicationContext.xml配置Bean,只需要在applicationContext.xml文件上加上:
<context:component-scan base-package="cn.szy"></context:component-scan>
在讲解前,先推荐一篇博文,详细讲解了< context:annotation-config />
和< context:component-scan base-package=""></ context:component-scan>
的区别,原文地址:点此进入
< context:annotation-config />
作用:
用于激活那些已经在spring容器里注册过的bean(无论是通过xml的方式还是通过package sanning的方式)上面的注解,比如:
(1)AutowiredAnnotationBeanPostProcessor:@Autowired
(2)CommonAnnotationBeanPostProcessor:@ Resource、@ PostConstruct、@ PreDestroy
(3)PersistenceAnnotationBeanPostProcessor:@PersistenceContext
(4)RequiredAnnotationBeanPostProcessor:@Required
原文地址:点此进入
以上注解我除了知道@Autowired外,其他都不是很清楚,以后知道了再补上。
通俗地说:在spring容器已经注册了某个组件后,比如类A已经注册到spring了,但是类A引用了也已经被注册到spring的类B,这时,如果不想再spring配置文件上配置A引用类B,那么可以在类A代码中的B属性上使用@Autowired,那么< context:annotation-config />
的作用就是激活@Autowired。
< context:component-scan base-package=""> </ context:component-scan>
的作用:
首先,< context:component-scan base-package=""> </ context:component-scan>
已经包括了上面<context:annotation-config />
的作用;其次,他的作用是扫描base-package下的组件,这些组件用@Controller、@Service、@Reposity(Dao层)等(这里有个疑问:@Transactional是跟他们同一个级别的吗?)
2、JPA注解,JPA(Java Persistence API)。用于代替.hbm.xml文件的,当struts2配置了自动建表时,会根据这些配置建立数据表。
Annotation与xml的比较。使用Annotation更加简洁,将java代码与配置集中到同一个文件当中,但是要求开发者对JPA很熟悉;基于Annotation的实体具有更好的可保值性。因为Annotation不是属于Hibernate,对于所有的ORM框架都有用处。
注意在SSH框架中实体层的@Entity是属于JPA的
3、导入strut2-convention-plugin-2.3.14.jar的注解
这些注解是取代配置action的作用,给定如下:
import org.apache.struts2.convention.annotation.Action;
import org.apache.struts2.convention.annotation.Namespace;
import org.apache.struts2.convention.annotation.ParentPackage;
import org.apache.struts2.convention.annotation.Result;
import org.springframework.stereotype.Controller;
import com.opensymphony.xwork2.ActionSupport;
import com.opensymphony.xwork2.ModelDriven;
@Namespace("/szy")
@ParentPackage("struts-default")
@Controller
public class Forward extends ActionSupport {
@Action(value="login",
results={@Result(name="login", location="/WEB-INF/login.jsp")})
public String login(){
return LOGIN;
}
}
上面一段代码片段的注解可取代:
<package name="forward" namespace="/szy" extends="struts-default">
<action name="login" class="forward" method="login">
<result name="login">/WEB-INF/login.jsp</result>
</action>
</package>
个人习惯:使用spring提供的注解,不使用JPA,考虑使用struts2的注解