Spring Boot和Spring MVC之间主要区别

Spring Boot和Spring MVC之间主要有以下区别:

  1. 目的不同:Spring Boot是一个用于快速构建现代应用程序的框架,它通过提供依赖管理、自动配置和其他高级功能来简化Spring的开发。而Spring MVC则是Spring框架的一个核心模块,它提供了一系列Web开发相关的组件,例如控制器和视图解析器等,以便于开发Web应用程序。

  2. 使用范围不同:Spring Boot可以用于创建任何类型的应用程序,从简单的命令行工具到Web应用程序和RESTful API,而Spring MVC则更适合于Web应用程序的开发。

  3. 基础设施不同:Spring Boot提供了充分的自动配置,可以使开发人员更快速地创建应用程序,而Spring MVC需要开发人员配置框架和容器。

  4. 控制反转方式不同: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文件,使我们的代码看起来更简介和清晰。

你可能感兴趣的:(spring,boot,spring,spring,boot,mvc)