关于SSH三大框架注解的问题

关于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的注解

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值