simplify content negotiation setup

- remove custom xml view, use springboot builtin xml view
- remove oxm maven dependency
- remove json-simple maven dependency (seems not relevant anymore)
- update vetsXml test using xpath
This commit is contained in:
Dapeng 2016-06-28 11:05:42 +08:00
parent aa8cc431eb
commit 077f4eb105
5 changed files with 16 additions and 89 deletions

View file

@ -16,36 +16,16 @@
package org.springframework.samples.petclinic;
import com.github.dandelion.core.web.DandelionFilter;
import com.github.dandelion.core.web.DandelionServlet;
import net.sf.ehcache.config.CacheConfiguration;
import net.sf.ehcache.config.PersistenceConfiguration;
import net.sf.ehcache.config.PersistenceConfiguration.Strategy;
import net.sf.ehcache.store.MemoryStoreEvictionPolicy;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.builder.SpringApplicationBuilder;
import org.springframework.boot.context.embedded.FilterRegistrationBean;
import org.springframework.boot.context.embedded.ServletRegistrationBean;
import org.springframework.boot.context.web.SpringBootServletInitializer;
import org.springframework.cache.CacheManager;
import org.springframework.cache.annotation.CachingConfigurerSupport;
import org.springframework.cache.annotation.EnableCaching;
import org.springframework.cache.ehcache.EhCacheCacheManager;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.ComponentScan;
import org.springframework.context.annotation.Configuration;
import org.springframework.oxm.jaxb.Jaxb2Marshaller;
import org.springframework.samples.petclinic.model.Vets;
import org.springframework.web.servlet.view.xml.MarshallingView;
/**
* PetClinic Spring Boot Application.
*
*/
@Configuration
@EnableAutoConfiguration
@ComponentScan
@SpringBootApplication
public class PetClinicApplication extends SpringBootServletInitializer {
@Override

View file

@ -1,42 +0,0 @@
/*
* Copyright 2002-2016 the original author or authors.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.springframework.samples.petclinic.config;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.oxm.jaxb.Jaxb2Marshaller;
import org.springframework.samples.petclinic.model.Vets;
import org.springframework.web.servlet.view.BeanNameViewResolver;
import org.springframework.web.servlet.view.xml.MarshallingView;
/**
*
* {@link BeanNameViewResolver} is used to resolve the Atom and Xml views. So, the
* following beans names must match the name of the JSP you want to override and the
* file extension will indicate which bean to use for resolving.
*
*/
@Configuration
public class CustomViewsConfiguration {
@Bean(name = "vets/vetList.xml")
public MarshallingView vetsXmlView() {
Jaxb2Marshaller marshaller = new Jaxb2Marshaller();
marshaller.setClassesToBeBound(Vets.class);
return new MarshallingView(marshaller);
}
}

View file

@ -18,6 +18,7 @@ package org.springframework.samples.petclinic.web;
import java.util.Map;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.MediaType;
import org.springframework.samples.petclinic.model.Vets;
import org.springframework.samples.petclinic.service.ClinicService;
import org.springframework.stereotype.Controller;
@ -41,7 +42,7 @@ public class VetController {
this.clinicService = clinicService;
}
@RequestMapping(value = {"/vets.xml", "/vets.html"})
@RequestMapping(value = {"/vets.html"})
public String showVetList(Map<String, Object> model) {
// Here we are returning an object of type 'Vets' rather than a collection of Vet objects
// so it is simpler for Object-Xml mapping
@ -51,7 +52,7 @@ public class VetController {
return "vets/vetList";
}
@RequestMapping("/vets.json")
@RequestMapping(value = {"/vets.json", "/vets.xml"})
public
@ResponseBody
Vets showResourcesVetList() {