Spring 是用于开发 Java 应用程序的开源框架,为解决企业应用开发的复杂性而创建。
Spring MVC 是 Spring 的子功能模块,专用于 Web 开发。
Spring MVC 基于 Servlet 实现,将 Web 应用中的数据业务、显示逻辑和控制逻辑进行分层设计。开发者可以直接调用 Spring MVC 框架中 Spring 解耦的组件,快速构建 Web 应用。
Spring Boot 是用于简化创建 Spring 项目配置流程,快速构建 Spring 应用程序的辅助工具。Spring Boot 本身并不提供 Spring 框架的核心特性以及扩展功能。但 在创建 Spring 项目时,Spring Boot 可以:
在Spring Boot中,引入的所有包都是 starter 形式:
spring-boot-starter-web-services,针对 SOAP Web Services spring-boot-starter-web,针对 Web 应用与网络接口 spring-boot-starter-jdbc,针对 JDBC spring-boot-starter-data-jpa,基于 Hibernate 的持久层框架 spring-boot-starter-cache,针对缓存支持
classpath:/META-INF/resources/
classpath:/resources/
classpath:/static/
classpath:/public/
优先级顺序:META-INF/resources > resources > static > public
位于 resources 文件夹下,支持以下两种格式。由 Spring Boot 自动加载。
#端口号
server.port=8080
#访问前缀
server.servlet.context-path=/demo
#数据库驱动
jdbc.driver=com.mysql.jc.jdbc.Driver
#数据库链接
jdbc.url=jdbc:mysql://localhost:3306/demo?useUnicode=true&characterEncoding=utf8&useSSL=false&serverTimezone=UTC
#数据库用户名
jdbc.username=root
#数据库密码
jdbc.password=wdh19970506
#Mybatis
#配置文件路径
mybatis_config_file=mybatis-config.xml
#SQL语句配置路径
mapper_path=/mapper/**.xml
#实体类所在包
type_alias_package=com.example.demo.entityCopy to clipboardErrorCopied
多重配置
在 Spring Boot 中,我们往往需要配置多个不同的配置文件去适应不同的环境:
application-dev.properties
开发环境application-test.properties
测试环境application-prod.properties
生产环境只需要在程序默认配置文件 application.properties
中设置环境,就可以使用指定的配置。
spring.profiles.active=devCopy to clipboardErrorCopied
@SpringBootApplication
类:作为程序入口,在创建 Spring Boot 项目时自动创建。
等同于 @Configuration
+ @EnableAutoConfiguration
+ @ComponentScan
,会自动完成配置并扫描路径下所有包。
@SpringBootApplication
public class DemoApplication {
public static void main(String[] args) {
SpringApplication.run(DemoApplication.class, args);
}
}Copy to clipboardErrorCopied
Spring 需要定义调度程序 servlet ,映射和其他支持配置。我们可以使用 web.xml 文件或 Initializer 类来完成此操作:
public class MyWebAppInitializer implements WebApplicationInitializer {
@Override
public void onStartup(ServletContext container) {
AnnotationConfigWebApplicationContext context = new AnnotationConfigWebApplicationContext();
context.setConfigLocation("com.pingfangushi");
container.addListener(new ContextLoaderListener(context));
ServletRegistration.Dynamic dispatcher = container
.addServlet("dispatcher", new DispatcherServlet(context));
dispatcher.setLoadOnStartup(1);
dispatcher.addMapping("/");
}
}Copy to clipboardErrorCopied
还需要将 @EnableWebMvc
注释添加到 @Configuration
类,并定义一个视图解析器来解析从控制器返回的视图:
@EnableWebMvc
@Configuration
public class ClientWebConfig implements WebMvcConfigurer {
@Bean
public ViewResolver viewResolver() {
InternalResourceViewResolver bean
= new InternalResourceViewResolver();
bean.setViewClass(JstlView.class);
bean.setPrefix("/WEB-INF/view/");
bean.setSuffix(".jsp");
return bean;
}
}
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。