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景逸SUVL,也正是<action>节点中的name属性;
    • results(),表示action的两个result;那本天性是二个数组属性,由此可以定义多少个Result;
    • interceptorRefs(),表示action的八个拦截器。那特性情也是二个数组属性,由此得以定义七个拦截器;
    • params(),那是多少个String类型的数组,它根据name/value的样式协会,是传给action的参数;
    • exceptionMappings(),那是可怜属性,它是2个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:那个常量表示缺省的包名是何等,因为在实质上选取中,大家平日定义1个缺省的包,这几个包中定义了一大堆的拦截器等等,然后其它的包继承自那几个包。那几个常量能够配也能够不配;
  • struts.convention.package.locators:这些常量表示您的action类的java包的包名的后缀是吗:比如action。这些常量也能够不配;
  • struts.convention.package.locators.basePackage:这一个常量表示您的action类的java包package的名字是吗;那些常量也足以不配;

以上三个常量都是赞助功用的,为了让评释真正的劳作,必须在配备文件中加进<package>节点的计划,至少是<package name=”myPackage”
extends=”struts-default” />,那样评释就足以接纳了。

发表评论

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

网站地图xml地图