当前位置: 首页 > 网络应用技术

带您看看您可能尚不知道的春季特征技能!

时间:2023-03-07 14:09:07 网络应用技术

  本文主要介绍相关春季框架的一些新特征问题,包括一些特定的注释。

  @lazy可以在类级别延迟依赖@lazy注释修改!

  您可以将@lazy放在@Autowired上,也就是说,依赖的注入也会延迟;当我们调用userService时,它将被注入。也就是说,当依赖项被注入使用时。它也适用于@bean。

  @条件 @conitational类似于@profile

  首先查看@profile的使用。假设我们有一个用户模块:

  当我们编写测试用例时,我们可以指定我们使用的配置文件:

  如果您想自定义@profile等注释,则@conditional派上用场。假设系统中有许多本地/远程接口,那么我们定义两个注释@local和@remote注释,而不是 @profile.more。例如:

  然后,我们使用这两个注释来注释我们的服务:

  @profile实施的条件是:org.springframework.context.annotation.profilecondition。

  AsyncrestTemplate非块异步(改为废弃的WebClient)为客户端非块异步支持提供异步网板。

  服务器端非常简单,在返回结果之前,服务器暂停了10秒(但服务器也是非播放的)。

  客户承担上述内容:未来增强,提供了可聆听的未来,这是JDK未来的包,用于支持回调(成功/失败)。

  Spring支持JSR310的JAVA8时间类型支持。只要您能找到Java.Time.localdate,DefaultFormtingConversionservice将自动注册对JSR310的支持。您只需要在实体/bean上使用DateTimeFormat注释:

  例如,我们在SpringMVC中:

  当前页面请求:类型转换将自动转换。Spring4还提供了对时区的支持。例如,如果在SpringMVC中注册了LocaleContexTresolver的相应实现,我们可以使用以下两种方法获取相应的时区:

  但是,当前的劣势是,根据当前请求,不能像本地请求一样由相应的时区自动获得它。如果此功能需要涵盖相应的方法,例如cookielecaleresolver中的相应方法:

  有了越来越多的通用控制,对通用类型信息的需求也将出现越来越多的通用类型。如果使用本机API,可以获得许多步骤操作以获取仿制药,例如:

  Spring提供ResolvableType API,可提供更轻松,易于通用的操作支持,例如:::

  接口层的通用处理更为简单,以获取更复杂的通用操作。

  假设我们的API是:

  获取通用信息的类型

  通过上述API,您可以获得ResolvableType的类型。如果类型是由Spring AOP代理的,请使用原始类型,您可以通过以下类型信息获得通用参数的第一个位置(从0)。

  resolve()分析实际通用参数

  获得字段 - 级别的通用信息假设我们的字段如下:

  通过以下API,您可以获取字段-Level ResolvableType

  然后通过以下API获得服务遗传人参类型在0位置,即C

  例如列表 列表;这是一个嵌套的通用情况。我们可以通过以下操作获得字符串类型:

  简单的写作

  例如,地图> 地图;我们想获得整数,您可以使用:

  简单的写作

  获取方法返回值的面部信息在地图列表中获取字符串遗传人参:构造函数参数的通用信息

  假设我们的构造函数如下:

  我们可以通过以下方式获得第一个参数(地图>) 整数:

  获取许多组件类型的通用信息,例如私有列表[]数组;您可以通过以下方式获取List的通用固体人参弦:

  自定义的通用类型通用等效比较:与上一个列表[]数组相比,创建一个列表[]数组,它将返回到false。

  从上述操作可以看出,其通用操作功能非常完整,尤其是在获取嵌套的通用信息时。在目前,整个弹簧环境都使用此API来操作通用信息。

  春季注释中弹簧的改善已经对注释API和ApplicationContext的注释进行了一些改进,以获取注释。例如,@Service的注释是@Compent注释的注释。

  获取重复注释:例如,在使用Hibernate验证时,我们想将相同的注释添加到一种方法中,我们需要使用以下方法:

  您可以通过以下方式获得@Length:

  当然,如果您使用java8,那么您将支持重复注释,例如Spring的任务计划注释,

  在这种情况下,我们可以同时直接注释多个注释:

  但是在获得时,您仍然需要使用以下方式:

  ApplicationContext和BeanFactory提供了一种直接通过注释获得BEAN的方法:

  此外,它还提供了一个注释元素,用于简化java.lang.reflet.annotatedElement的操作。

  ScripteValuator脚本支持Spring还提供了类似于Javax.Script的简单包装,以支持某些脚本语言。核心接口是:

  例如,如果我们使用Groovy脚本,则可以是这样的:

  它还提供了简单的Beanshell(BSHSCRIPTEVALUATOR)和JAVAX.Script(StandardScripteValuator)的包装。

  mvcuriconentsbuildermvcuriconentsbuileder类似于Serpleturicomponentsbuilder,但是您可以直接从控制器中获取URI信息。如下所示

  注意:如果有两个@requestmapping(“/{id}”)如果在实际的MVC环境中,那是错误的。它仅用于测试。

  注意:当前的mvcuriconenentsbuilelder有问题。仅JDK环境支持。您可以复制一个副本,然后修改:method.getParameTercount()(仅支持Java 8)到Method.getParameterpes()。

  用于获取插座TCP/UDP可用端口的工具,例如: