浅谈Spring 和 Spring Boot

2 篇文章 0 订阅
2 篇文章 0 订阅

一、基本介绍

SpringSpring Boot都是Java开发中常用的框架,用于构建企业级应用程序。

  •  

    Spring‌:

    • Spring是一个轻量级的开源框架,其核心原则是面向切面编程(AOP)和控制反转(IoC)。Spring通过IoC容器管理和组织应用程序中的对象,通过AOP提供横切关注点的支持,如事务管理和日志记录等。Spring提供了一系列的模块,如Spring MVC用于Web开发、Spring Data用于数据库操作、Spring Security用于身份验证和授权等。Spring适用于开发各种规模的企业级应用程序,提供了广泛的功能和模块,可用于Web开发、数据库操作、事务管理、消息队列、安全认证等场景。Spring的灵活性和可扩展性使其成为许多企业应用的首选框架。
  •  

    Spring Boot‌:

    • Spring Boot是基于Spring的快速开发框架,旨在简化Spring应用程序的配置和部署。它使用了约定大于配置的理念,通过自动配置和起步依赖简化了项目的搭建和配置过程。Spring Boot集成了许多常用的开发工具和第三方库,提供了一个独立运行的可执行JAR包,可以快速构建独立的、可部署的Spring应用程序。它特别适用于快速构建微服务和独立的应用程序,简化了Spring的配置和部署,提供了自动配置和快速启动的特性。Spring Boot的设计理念使得开发者可以更专注于业务逻辑的开发,而无需过多关注底层的技术细节。

二、关键的区别

  1. 复杂性与简化

    • Spring:是一个全面的企业级应用开发框架,提供了大量的功能和配置选项。使用Spring可能需要更多的配置和设置工作。
    • Spring Boot:是Spring的一个模块,旨在简化Spring应用的初始搭建和开发过程。它通过提供一系列默认配置来减少开发者需要编写的代码量。
  2. 项目设置

    • Spring:项目设置可能更加复杂,需要手动配置很多方面,如数据源、事务管理等。
    • Spring Boot:通过提供“自动配置”和“起步依赖”(Starters)来简化项目设置,使得开发者可以快速开始开发。
  3. 依赖管理

    • Spring:通常需要开发者自己管理项目依赖。
    • Spring Boot:通过Spring Boot的“起步依赖”来自动管理依赖,这些起步依赖是一组预先定义好的依赖集合,可以快速集成到项目中。
  4. 微服务支持

    • Spring:支持微服务架构,但需要额外的配置和组件。
    • Spring Boot:与Spring Cloud紧密集成,提供了对微服务架构的更好支持。
  5. 社区和生态系统

    • 两者都拥有庞大的社区和丰富的生态系统。Spring Boot作为Spring的一个扩展,可以利用Spring的所有功能和库。
  6. 适用场景

    • Spring:适用于需要高度定制化和复杂配置的大型企业级应用。
    • Spring Boot:适用于快速开发和部署的现代应用,特别是微服务架构的应用。

三、简单代码示例

Spring应用示例

这是一个简单的Spring应用,使用XML配置文件来配置Spring容器和数据源。

1. Maven依赖 (pom.xml):

<dependencies>
    <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-context</artifactId>
        <version>5.3.10</version>
    </dependency>
    <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-jdbc</artifactId>
        <version>5.3.10</version>
    </dependency>
    <!-- 其他依赖 -->
</dependencies>

2. Spring配置文件 (applicationContext.xml):

<beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xsi:schemaLocation="http://www.springframework.org/schema/beans
       http://www.springframework.org/schema/beans/spring-beans.xsd">

    <bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource">
        <property name="driverClassName" value="com.mysql.cj.jdbc.Driver" />
        <property name="url" value="jdbc:mysql://localhost:3306/mydb" />
        <property name="username" value="root" />
        <property name="password" value="password" />
    </bean>

    <!-- 其他配置 -->
</beans>

3. 使用Spring的Java代码 (SomeService.java):

public class SomeService {
    @Autowired
    private DataSource dataSource;

    public void doSomething() {
        // 使用dataSource执行数据库操作
    }
}

Spring Boot应用示例

Spring Boot应用通常使用Java配置类和自动配置来简化配置。

1. Maven依赖 (pom.xml):

<dependencies>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-web</artifactId>
        <version>2.5.6</version>
    </dependency>
    <!-- 其他依赖 -->
</dependencies>

2. Spring Boot应用主类 (Application.java):

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

@SpringBootApplication
public class Application {

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

3. Spring Boot配置类 (SomeService.java):

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.jdbc.datasource.DriverManagerDataSource;

@Configuration
public class SomeService {

    @Bean
    public DataSource dataSource() {
        DriverManagerDataSource dataSource = new DriverManagerDataSource();
        dataSource.setDriverClassName("com.mysql.cj.jdbc.Driver");
        dataSource.setUrl("jdbc:mysql://localhost:3306/mydb");
        dataSource.setUsername("root");
        dataSource.setPassword("password");
        return dataSource;
    }

    public void doSomething() {
        // 使用dataSource执行数据库操作
    }
}

  • 23
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

CN.LG

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值