Struts2的笺注功用

对于IJ那些IDE工具以来,大家会设置一些插件来帮忙咱们更好的拓展开发,像lombok便是一款不错的插件,使用评释的措施在类型编写翻译时推搡大家转变代码,像getter,setter,tostring等等,它们一般都是部分重复的代码,而lombok就是帮忙大家转移那几个重新代码的,对于多个IJ的工具以来,假诺您不运营编写翻译时申明功效,那么项目在build时会报错!

咱俩领略平时情形下,Struts2是通过struts.xml配置的。不过随着系统规模的加大咱们要求配备的文本会相比大,纵然大家得以遵照分化的类别机能将不一致模块的铺排文件单独书写,然后经过<include>节点将分裂的布局文件引入到最后的struts.xml文件中,然则到底还是要爱戴和治本那一个文件,由此也会给保卫安全工作拉动不小的麻烦。为了缓解这一个难点,能够考虑动用struts2的申明。实际上struts2中最重庆大学的概念正是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的笺注功效,必须选择二个包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(),那是老大属性,它是2个ExceptionMapping的数组属性,表示action的十二分,在选取时必须引用相应的拦截器;
  • @Result,那一个注明对应了<result>节点。这么些声明只好选取于action类上。这么些表明中也有多少个属性:

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

其实,struts2中的首要证明正是这一个,当然了,还有地点提到的@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地图