My First Spring-Boot Project(3)-WebConfig
既然框架能跑起来,接下来当然是分析代码。在My First Spring-Boot Project(1)提到需要添加的两个东西分析下:ChickenApplication.java和application.properties
1 /** 2 * @SpringBootApplication等价于@Configuration、@EnableAutoConfiguration、@ComponentScan, 3 * 查看SpringBootApplication注解可以发现@ComponentScan并没有添加任何的参数, 4 * 它会自动扫描工程里所有的@Component, @Service, @Repository, @Controller并把它们注册为Spring Beans。 5 */ 6 @SpringBootApplication(exclude = {DataSourceAutoConfiguration.class}) 7 public class ChickenApplication implements ServletContextInitializer { 8 }
SpringBootApplication 用来做快速启动用。也就是不用启动tomcat就可以跑一个项目,微服务的便利性。可以通过点击Gradle->task->application->bootRun跑起来,也可以写一个main方法调用
1 public static void main(String[] args) { 2 SpringApplication.run(ChickenApplication.class, args); 3 }
编写界面的时候我们不想网页都放在webapp目录下,而是新建一个文件夹,例如webapp/view里面,这个时候我们通过设置InternalResourceViewResolver,将读取路径切换到该目录。
onfiguration public class WebConfig extends WebMvcConfigurationSupport { /** * 另外一种是springmvc中的代码式配置,这种也是现在比较流行的配置方式,不显式指定配置文件,配置即代码的思想, * 脚本语言python js scala流行的配置方式。 * 代码是配置的主要操作就是自己写代码来为mvc配置类中的某个方法注入bean或者直接覆盖方法 */ @Bean public InternalResourceViewResolver viewResolver() { InternalResourceViewResolver viewResolver = new InternalResourceViewResolver(); viewResolver.setPrefix("/view/"); //viewResolver.setSuffix(".html");//希望加载所有类型的页面(html,htm,jsp等),所以注释这一行 return viewResolver; } @Override public void configureDefaultServletHandling(DefaultServletHandlerConfigurer configurer) { configurer.enable(); } /** * springmvc拦截器(HandlerInterceptor)。 拦截器在springmvc中有重要的作用,它比servlet的Filter功能更强大(拦截器中可以编程的地方更多)也更好使用, 缺点就是它只能针对springmvc,也就是dispatcherServlet拦截的请求,不是所有servlet都能被它拦截。 */ @Override public void addInterceptors(InterceptorRegistry registry) { // registry.addInterceptor(new Interceptor1()).addPathPatterns("/**"); super.addInterceptors(registry); } }