Struts2的申明功用

对于IJ这些IDE工具以来,我们会设置一些插件来支持大家更好的开展付出,像lombok就是一款不错的插件,使用表明的主目的在于品种编译时推来推去我们转变代码,像getter,setter,tostring等等,它们一般都是部分重新的代码,而lombok正是扶持大家转移那么些重新代码的,对于叁个IJ的工具以来,假如你不运维编写翻译时评释作用,那么项目在build时会报错!

咱俩知道日常情形下,Struts2是通过struts.xml配置的。不过随着系统规模的加大大家必要配置的文本会对比大,就算大家得以根据不一样的系统功效将分裂模块的配置文件单独书写,然后通过<include>节点将不一致的配备文件引入到终极的struts.xml文件中,可是终究照旧要珍重和保管那一个文件,因而也会给保卫安全工作推动相当的大的麻烦。为了缓解这么些题材,能够考虑采用struts2的注释。实际上struts第22中学最重点的定义就是package、action以及Interceptor等等概念,所以借使通晓那一个注脚就能够了。

拉开build时的笺注

 “Settings > Build >
Compiler > Annotation Processors”

图片 1

接下来再安装lombok插件

图片 2

在类型里布署关于lombok的借助项

compileOnly('org.projectlombok:lombok:1.16.20')

最终就足以在代码中选取lombok的注释了

/**
 * 用户实体
 *
* @Data :注解在类上;提供类所有属性的 getting 和 setting 方法,此外还提供了equals、canEqual、hashCode、toString 方法
* @Setter:注解在属性上;为属性提供 setting 方法
* @etter:注解在属性上;为属性提供 getting 方法
* @og4j :注解在类上;为类提供一个 属性名为log 的 log4j 日志对象
* @oArgsConstructor:注解在类上;为类提供一个无参的构造方法
* @llArgsConstructor:注解在类上;为类提供一个全参的构造方法
*/
@Data
@NoArgsConstructor
@AllArgsConstructor
public class UserInfo {
    @Id
    private String id;
    @NotNull
    private String name;
    private String email;
}

好了,启用插件申明就说到那边,谢谢阅读!

 

固然期望利用struts2的注明成效,必须采取1个包struts2-convention-plugin-2.1.8.1.jar,笔者利用的环境是struts2.1.8.1。如若你选用了不一致的本子,找名字就行。

在上述所述的jar文件中定义了一文山会海的评释,当中对比关键的是:

  • @ParentPackage,那些注脚对应了xml文件中的package节点,它唯有五天性质叫value,其实正是package的name属性;
  • @Namespace,命名空间,相当于xml文件中<package>的namespace属性;
  • @Action,那一个申明对应<action>节点。这么些证明能够选用于action类上,也足以使用于方法上。这些注脚中有多少个属性:

    • value(),表示action的U帕杰罗L,也正是<action>节点中的name属性;
    • results(),表示action的多个result;那本性格是多少个数组属性,因而得以定义三个Result;
    • interceptorRefs(),表示action的多少个拦截器。这一个特性也是一个数组属性,由此得以定义七个拦截器;
    • params(),那是三个String类型的数组,它依照name/value的样式组织,是传给action的参数;
    • exceptionMappings(),那是丰硕属性,它是几个ExceptionMapping的数组属性,表示action的要命,在选用时务必引用相应的拦截器;
  • @Result,那么些证明对应了<result>节点。这几个表明只好利用于action类上。那些评释中也有多少个特性:

    • name(),表示action方法的重回值,也便是<result>节点的name属性,默许意况下是【success】;
    • location(),表示view层文件的岗位,能够是相对路径,也足以是相对路径;
    • type(),是action的类型,比如redirect;
    • params(),是三个String数组。也是以name/value形式传送给result的参数;

实在,struts第22中学的首要申明就是那么些,当然了,还有地点提到的@interceptorRef和@exceptionMapping;基本上,精通了这几个申明就足以了。

可是倘使想让那个表明真正行事,必须在布署文件扩充多少个常量的概念:

  • struts.convention.default.parent.package:这些常量表示缺省的包名是什么,因为在实际上选取中,我们日常定义贰个缺省的包,这几个包中定义了一大堆的拦截器等等,然后其余的包继承自那个包。那几个常量能够配也能够不配;
  • struts.convention.package.locators:这几个常量表示您的action类的java包的包名的后缀是吗:比如action。这么些常量也得以不配;
  • struts.convention.package.locators.basePackage:这一个常量表示您的action类的java包package的名字是甚;那一个常量也能够不配;

上述多个常量都以帮扶成效的,为了让注解真正的工作,必须在布局文件中追加<package>节点的安插,至少是<package name=”myPackage”
extends=”struts-default” />,那样表明就足以应用了。

发表评论

电子邮件地址不会被公开。 必填项已用*标注

网站地图xml地图