2016-09-13 4 views
2

Я разработал пример spring-security-jsp-authorize. В этом примере я использовал версию spring-boot-starter-parent1.3.7.RELEASE до тех пор, пока эта версия программы не выдала никакой ошибки устаревания для SpringBootServletInitializer. Что такое замена import org.springframework.boot.context.web.SpringBootServletInitializer весной-boot-starter-parent в версии 1.4.0.RELEASE?Что следует использовать вместо SpringBootServletInitializer, устаревшего в 1.4.0.RELEASE

Application.java

@SpringBootApplication 
public class Application extends SpringBootServletInitializer { 

    @Override 
    protected SpringApplicationBuilder configure(SpringApplicationBuilder application) { 
     return application.sources(Application.class); 
    } 

    public static void main(String[] args) { 
     SpringApplication.run(Application.class, args); 
    } 
} 

enter image description here

pom.xml

<parent> 
     <groupId>org.springframework.boot</groupId> 
     <artifactId>spring-boot-starter-parent</artifactId> 
     <version>1.4.0.RELEASE</version> 
    </parent> 

    <dependencies> 
     <dependency> 
      <groupId>org.springframework.boot</groupId> 
      <artifactId>spring-boot-starter-security</artifactId> 
     </dependency> 
     <dependency> 
      <groupId>org.springframework.boot</groupId> 
      <artifactId>spring-boot-starter-web</artifactId> 
     </dependency> 

     <dependency> 
      <groupId>org.springframework.boot</groupId> 
      <artifactId>spring-boot-starter-tomcat</artifactId> 
      <scope>provided</scope> 
     </dependency> 

     <dependency> 
      <groupId>org.apache.tomcat.embed</groupId> 
      <artifactId>tomcat-embed-jasper</artifactId> 
      <scope>provided</scope> 
     </dependency> 

     <dependency> 
      <groupId>javax.servlet</groupId> 
      <artifactId>jstl</artifactId> 
     </dependency> 

     <dependency> 
      <groupId>org.springframework.security</groupId> 
      <artifactId>spring-security-taglibs</artifactId> 
     </dependency> 
    </dependencies> 

    <build> 
     <plugins> 
      <plugin> 
       <groupId>org.springframework.boot</groupId> 
       <artifactId>spring-boot-maven-plugin</artifactId> 
      </plugin> 
     </plugins> 
    </build> 

    <properties> 
     <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> 
     <java.version>1.8</java.version> 
    </properties> 

SecurityConfig.java

@Configuration 
@EnableWebSecurity 
public class SecurityConfig extends WebSecurityConfigurerAdapter { 

    @Override 
    protected void configure(final AuthenticationManagerBuilder auth) throws Exception { 
     auth.inMemoryAuthentication() 
     .withUser("john").password("123").roles("USER") 
     .and() 
     .withUser("tom").password("111").roles("ADMIN"); 
    } 

    @Override 
    public void configure(WebSecurity web) throws Exception { 
     web.ignoring().antMatchers("/resources/**"); 
    } 

    @Override 
    protected void configure(final HttpSecurity http) throws Exception { 
     http.authorizeRequests() 
     .antMatchers("/login").permitAll() 
     .antMatchers("/admin").hasRole("ADMIN") 
     .anyRequest().authenticated() 
     .and().formLogin().permitAll(); 
    } 
} 

MvcConfig.java

@Configuration 
public class MvcConfig extends WebMvcConfigurerAdapter { 

    public MvcConfig() { 
     super(); 
    } 

    @Override 
    public void addViewControllers(final ViewControllerRegistry registry) { 
     super.addViewControllers(registry); 
     registry.addViewController("/").setViewName("forward:/index"); 
     registry.addViewController("/index"); 
    } 
} 

ответ

6

Это указано в документации для Spring ботинке 1.4>org.springframework.boot.context.web:

устар. в 1,4 в пользу org.springframework.boot.web.support.SpringBootServletInitializer

Просто измените устаревшее импорт этого нового пакета.

+0

Что делать, если я не использую 'Spring Boot'? – Daria

0

Интерфейс WebMvcConfigurer можно использовать.

public class Configuration implements WebMvcConfigurer { 

    @Override 
    public void configureMessageConverters(List<HttpMessageConverter<?>> converters) { 
     converters.add(mappingJackson2HttpMessageConverter()); 
    } 


    @Override 
    public void configureDefaultServletHandling(DefaultServletHandlerConfigurerconfigurer) { 
     configurer.enable(); 
    } 
}