Struts2的诠释功用

对于IJ这么些IDE工具以来,大家会设置一些插件来帮衬大家更好的开始展览付出,像lombok就是一款不错的插件,使用注脚的法门在品种编写翻译时推推搡搡我们转变代码,像getter,setter,tostring等等,它们一般都是部分重新的代码,而lombok正是援救大家转变这一个再一次代码的,对于2个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的诠释功用,必须运用3个包struts2-convention-plugin-2.1.8.1.jar,作者使用的条件是struts2.1.8.1。要是您利用了分裂的版本,找名字就行。

在上述所述的jar文件中定义了一文山会海的注释,在那之中相比较首要的是:

  • @ParentPackage,那个评释对应了xml文件中的package节点,它只有1个性子叫value,其实便是package的name属性;
  • @Namespace,命名空间,也正是xml文件中<package>的namespace属性;
  • @Action,这一个表明对应<action>节点。那些表明能够动用于action类上,也足以动用于艺术上。这一个评释中有多少个属性:

    • value(),表示action的U君越L,也等于<action>节点中的name属性;
    • results(),表示action的三个result;那么些天性是3个数组属性,由此能够定义八个Result;
    • interceptorRefs(),表示action的八个拦截器。这一个天性也是一个数组属性,因而能够定义多少个拦截器;
    • params(),那是3个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地图