spring与spring boot的区别

spring与spring boot的区别

项目配置:

Spring: 在Spring中,项目的配置通常需要在XML文件中进行,包括配置数据源、事务管理、AOP等。这需要开发人员手动配置很多细节。

java 复制代码
<!-- 在Spring中使用XML配置数据源 -->
<bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource">
    <property name="driverClassName" value="com.mysql.jdbc.Driver"/>
    <property name="url" value="jdbc:mysql://localhost:3306/mydatabase"/>
    <property name="username" value="root"/>
    <property name="password" value="password"/>
</bean>

Spring Boot: Spring Boot采用约定优于配置的理念,提供了一种基于约定的默认配置方式,通过使用注解和默认配置,大大减少了开发人员的配置工作。

java 复制代码
// 在Spring Boot中使用注解配置数据源
@SpringBootApplication
public class MyApplication {
    @Bean
    public DataSource dataSource() {
        return DataSourceBuilder.create()
                .driverClassName("com.mysql.jdbc.Driver")
                .url("jdbc:mysql://localhost:3306/mydatabase")
                .username("root")
                .password("password")
                .build();
    }

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

依赖管理:

Spring: 在使用Spring时,你需要手动管理项目所需的所有依赖,包括Spring框架的核心模块、数据库连接池、日志等。

java 复制代码
<!-- 在Spring中手动管理依赖 -->
<dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring-core</artifactId>
    <version>5.3.1</version>
</dependency>
<dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring-jdbc</artifactId>
    <version>5.3.1</version>
</dependency>

Spring Boot: Spring Boot通过Starter模块简化了依赖管理,通过引入相关的Starter,你可以轻松地获得所需功能的依赖。例如,你可以使用spring-boot-starter-web来快速启动一个Web应用,它会自动引入Web开发所需的依赖。

java 复制代码
<!-- 在Spring Boot中使用Starter简化依赖 -->
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-web</artifactId>
    <version>2.4.1</version>
</dependency>

开发体验:

Spring: Spring需要开发人员手动配置很多细节,这可能导致配置的繁琐和错误。
Spring Boot: Spring Boot提供了自动配置,可以根据项目的依赖和类路径自动配置应用程序。这极大地简化了开发人员的工作,提高了开发效率。

嵌入式服务器:

Spring: 在Spring中,你需要手动配置并部署一个外部的应用服务器,如Tomcat或Jetty。

java 复制代码
<!-- 在Spring中配置外部Web服务器 -->
<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
    <property name="prefix" value="/WEB-INF/views/"/>
    <property name="suffix" value=".jsp"/>
</bean>

Spring Boot: Spring Boot内置了嵌入式的Web服务器(如Tomcat、Jetty、Undertow),使得应用程序可以作为一个独立的JAR文件运行,无需外部服务器。

java 复制代码
// 在Spring Boot中无需外部服务器配置,使用默认嵌入式服务器
@SpringBootApplication
public class MyApplication {
    public static void main(String[] args) {
        SpringApplication.run(MyApplication.class, args);
    }
}

约定优于配置:

Spring: 在Spring中,你需要显式配置很多内容,开发人员有更多的控制权,但需要花费更多的时间来配置。
Spring Boot: Spring Boot采用了约定优于配置的原则,提供了一组默认配置,开发人员只需专注于项目特定的配置,减少了样板代码。

结论

在选择Spring和Spring Boot之间,取决于项目的性质、开发者的经验和团队的需求。如果项目对灵活性有较高要求,需要进行复杂的定制和细致的配置,那么Spring可能更合适。而如果你注重快速搭建、简化部署,希望遵循约定优于配置的原则,那么Spring Boot可能更符合你的期望。

相关推荐
bjzhang751 小时前
SpringBoot开发——Maven多模块工程最佳实践及详细示例
spring boot·maven·maven多模块工程
chusheng18401 小时前
Java项目-基于SpringBoot+vue的租房网站设计与实现
java·vue.js·spring boot·租房·租房网站
计算机毕设孵化场2 小时前
计算机毕设-基于springboot的高校网上缴费综合务系统视频的设计与实现(附源码+lw+ppt+开题报告)
java·spring boot·计算机外设·音视频·课程设计·高校网上缴费综合务系统视频·计算机毕设ppt
码蜂窝编程官方3 小时前
【含开题报告+文档+PPT+源码】基于SpringBoot+Vue的虎鲸旅游攻略网的设计与实现
java·vue.js·spring boot·后端·spring·旅游
AuroraI'ncoding3 小时前
时间请求参数、响应
java·后端·spring
许苑向上4 小时前
Dubbo集成SpringBoot实现远程服务调用
spring boot·后端·dubbo
郑祎亦4 小时前
Spring Boot 项目 myblog 整理
spring boot·后端·java-ee·maven·mybatis
计算机毕设指导66 小时前
基于 SpringBoot 的作业管理系统【附源码】
java·vue.js·spring boot·后端·mysql·spring·intellij-idea
paopaokaka_luck6 小时前
[371]基于springboot的高校实习管理系统
java·spring boot·后端
ExiFengs7 小时前
实际项目Java1.8流处理, Optional常见用法
java·开发语言·spring