Spring Boot和Spring MVC之间主要有以下区别:
目的不同:Spring Boot是一个用于快速构建现代应用程序的框架,它通过提供依赖管理、自动配置和其他高级功能来简化Spring的开发。而Spring MVC则是Spring框架的一个核心模块,它提供了一系列Web开发相关的组件,例如控制器和视图解析器等,以便于开发Web应用程序。
使用范围不同:Spring Boot可以用于创建任何类型的应用程序,从简单的命令行工具到Web应用程序和RESTful API,而Spring MVC则更适合于Web应用程序的开发。
基础设施不同:Spring Boot提供了充分的自动配置,可以使开发人员更快速地创建应用程序,而Spring MVC需要开发人员配置框架和容器。
控制反转方式不同:Spring Boot通过使用基于注解的方式来实现控制反转(IoC),而Spring MVC则使用XML或注解的方式实现。
总之,Spring Boot和Spring MVC在目的、使用场景、基础设施和控制反转方法等方面都存在差异。Spring Boot是一个用于快速构建现代应用程序的框架,而Spring MVC是一种Web应用程序开发框架。不过,Spring Boot的自动配置和依赖管理功能也可以用于简化Spring MVC的开发。
下面分别给出两个使用Spring Boot和不使用Spring Boot的例子代码:
》使用Spring Boot的数据访问层(JDBC):
使用Spring Boot,我们只需使用以下pom.xml文件中的依赖项即可访问数据库:
<>org.springframework.boot spring-boot-starter-jdbc
接下来,我们可以将以下内容添加到application.properties文件中,以便配置JDBC连接池和数据库文件的路径:
spring.datasource.url=jdbc:h2:file:./data/demo spring.datasource.driverClassName=org.h2.Driver spring.datasource.username=spring spring.datasource.password=secret spring.h2.console.enabled=true
在我们的数据访问层中,我们可以使用以下代码访问数据库:
public List getPeople() {
reuturn jdbcTemplate.query("SELECT id, name, age FROM person",
(rs, rowNum) -> new Person(rs.getInt("id"), rs.getString("name"), rs.getInt("age")));
}
》没有使用Spring Boot的数据访问层(JDBC):
在没有使用Spring Boot的情况下,我们需要创建我们自己的DataSource类和JdbcTemplate类至少在我们的项目中需要。以下是示例代码:
@Configuration
public class DataSourceConfig {
@Bean
public DataSource dataSource() {
DriverManagerDataSource dataSource = new DriverManagerDataSource();
dataSource.setDriverClassName("org.h2.Driver");
dataSource.setUrl("jdbc:h2:file:./data/demo");
dataSource.setUsername("spring");
dataSource.setPassword("secret");
return dataSource;
}
@Bean
public JdbcTemplate jdbcTemplate(DataSource dataSource) {
return new JdbcTemplate(dataSource);
}
}
在我们的数据访问层中,我们可以使用以下代码访问数据库:
public List getPeople() {
return jdbcTemplate.query("SELECT id, name, age FROM person",
(rs, rowNum) -> new Person(rs.getInt("id"), rs.getString("name"), rs.getInt("age")));
}
可以看到,使用Spring Boot可以大量减少我们需要编写和维护的代码,同时也不需要修改和添加一些用例管理的XML文件,使我们的代码看起来更简介和清晰。