spring mvc怎么加搜索的功能

spring mvc怎么加搜索的功能,第1张

通过策略接口,Spring 框架是高度可配置的,而且包含多种视图技术,例如 JavaServer Pages(JSP)技术、Velocity、Tiles、iText和POI。Spring MVC 框架并不知道使用的视图,所以不会强迫您只使用 JSP 技术。Spring MVC 分离了控制器、模型对象、分派器以及处理程序对象的角色,这种分离让它们更容易进行定制。

2优点

编辑

Lifecycle for overriding binding, validation, etc,易于同其它View框架(Tiles等)无缝集成,采用IOC便于测试

它是一个典型的教科书式的mvc构架,而不像struts等都是变种或者不是完全基于mvc系统的框架,对于初学者或者想了解mvc的人来说我觉得 spring是最好的,它的实现就是教科书!第二它和tapestry一样是一个纯正的servlet系统,这也是它和tapestry相比 struts所没有的优势。而且框架本身有代码,而且看起来容易理解。

3单元 测试

编辑

关于Spring MVC Controller 层的单元测试

测试准备工作:

1、搭建测试Web环境

1

2

3

4

5

@RunWith(UnitilsJUnit4TestClassRunner.class)

@SpringApplicationContext({

"classpath:*.xml","file:src/main/webapp/WEB-INF/spring-configuration/*.xml",

"file:src/main/webapp/WEB-INF/*.xml"

})

2、注入Controller 类

1

2

@Controller

BeanControllercontroller

3、编写测试数据

测试数据的文件名一定要与测试类的文件名相同,比如测试数据BeanControllerTest.xml ,测试类 BeanControllerTest。

4、注入测试数据

1

2

3

@Test

@DataSet

publicvoidtestBean(){}

核心容器改进

核心容器额外提供了更丰富的元数据来改进编程。

默认 Java 8 的方法检测为 bean 属性的 getter/setter 方法。

如果目标 bean 只定义了一个构造函数,则它无需要指定@Autowired注解

@Configuration类支持构造函数注入。

任何 SpEL 表达式用于指定@EventListener的 condition 引用到 bean(例如@beanName.method())。

组成注解现在可以用一个包含元注解中的数组属性的数组组件类型的元素来覆盖。例如,@RequestMapping的的String[] path 可以在组成注解用 String path 覆盖。

@Scheduled和@Schedules现在是作为元注解用来通过属性覆盖来创建自定义的组成注解。

@Scheduled适当支持任何范围内的 bean。

数据访问改进

jdbc:initialize-database 和 jdbc:embedded-database 支持可配置的分离器被应用到每个脚本。

缓存改进

Spring 4.3 允许在一个给定的 key 并发调用时实现要同步,使得相应的值只计算一次。这是一个可选的功能,通过设置@Cacheable的新的 sync 属性来启用。此功能引入了Cache接口的一个重大更改,即get(Object key, Callable<T>valueLoader)方法已添加。

Spring 4.3 还改进了缓存抽象如下:

SpEL 表达式对于缓存相关的注解,现在可以引用 bean(即@beanName.method()))。

ConcurrentMapCacheManager和ConcurrentMapCache现在通过一个新的storeByValue属性支持缓存实体的序列化。 @Cacheable,@CacheEvict,@CachePut和@Caching现在是作为元注解用来通过属性覆盖来创建自定义的组成注解。

JMS 改进

@SendTo现在可以在类级别指定一个共同回复目标。

@JmsListener 和 @JmsListeners现在是作为元注解用来通过属性覆盖来创建自定义的组成注解。

Web 改进

内建支持 HTTP HEAD 和 HTTP OPTIONS.

新的组合注解 @GetMapping, @PostMapping, @PutMapping, @DeleteMapping, 和 @PatchMapping 用于@RequestMapping。

详见 @RequestMapping 组合变种

新的@RequestScope, @SessionScope, 和 @ApplicationScope用于 web 范围的组合注解

Request scope, Session scope, 和 Application scope

新的 @RestControllerAdvice 注解是 @ControllerAdvice 和 @ResponseBody 的语义结合

@ResponseStatus现在在类级别被支持,并被所有方法继承

新的 @SessionAttribute 注解用于访问 session 属性 (见例子)

新的 @RequestAttribute 注解用于访问请求属性 (见例子)

@ModelAttribute 允许通过 binding=false 来避免数据绑定(见引用)

错误和自定义抛出,将被统一到 MVC 异常处理器中处理

HTTP 消息转换编码一致处理,包括默认 UTF-8 用于多部分文本内容

静态资源处理使用配置的ContentNegotiationManager用于媒体类型计算

RestTemplate 和 AsyncRestTemplate 支持通过DefaultUriTemplateHandler 来实现严格的URI变量编码

AsyncRestTemplate支持请求拦截

WebSocket 消息改进

@SendTo和@SendToUser现在可以在类级被指定为共享共同的目的地。

测试改进

为了支持 Spring TestContext Framework ,现在需要 JUnit 4.12 或者更高的版本

新的SpringRunner 关联于 SpringJUnit4ClassRunner

测试相关的注解,现在可以在接口上声明了。例如,基于 Java 8 的接口上使用测试接口

空声明的 @ContextConfiguration 现在将会完全忽略,如果检测到默认的 XML 文件, Groovy 脚本, 或@Configuration 类型

@Transactional 测试方法不再需要public (如, 在 TestNG 和 JUnit 5)

@BeforeTransaction 和 @AfterTransaction不再需要public,并且在 基于 Java 8 的接口的默认方法上声明

在Spring TestContext Framework 的ApplicationContext的缓存现在有界为32默认最大规模和最近最少使用驱逐策略。最大的大小可以通过设置称为spring.test.context.cache.maxSize 一个 JVM 系统属性或 Spring 配置。

ContextCustomizer API 用于自定义测试 ApplicationContext 在 bean 定义加载到上下文后但在上下文被刷新前。定制工具可以在全球范围由第三方进行注册,而无需要实现一个自定义的 ContextLoader。

@Sql 和 @SqlGroup 现在作为元注解通过覆盖属性来创建自定义组合注解

ReflectionTestUtils现在在 set 或 get 一个字段时,会自动解开代理。

服务器端的 Spring MVC 测试支持具有多个值的响应头。

服务器端的 Spring MVC 测试解析表单数据的请求内容和填充请求参数。

服务器端的 Spring MVC 测试支持 mock 式的断言来调用处理程序方法。

客户端 REST 测试支持允许指定多少次预期的请求以及期望的声明顺序是否应该被忽略(参见15.6.3,“客户端REST测试”)。

客户端 REST 测试支持请求主体表单数据的预期。

支持新的类库和服务器

Hibernate ORM 5.2 (同样很好的支持 4.2/4.3 和 5.0/5.1,不推荐 3.6 )

Jackson 2.8 (在Spring 4.3,最低至 Jackson 2.6+ )

OkHttp 3.x (仍然并行支持 OkHttp 2.x)

Netty 4.1

Undertow 1.4

Tomcat 8.5.2 以及 9.0 M6


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/bake/11417291.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-15
下一篇 2023-05-15

发表评论

登录后才能评论

评论列表(0条)

保存