SpringBoot项目

313 阅读7分钟

开发一个 Spring Boot 项目通常遵循以下基本步骤:

  1. 项目初始化

    • 使用 Spring Initializr 在官网或者IDE中初始化一个新的 Spring Boot 项目。在初始化过程中,你可以选择项目的基本信息、依赖库、构建工具等。
    • 选择合适的构建工具(如 Maven、Gradle)和开发工具(如 IntelliJ IDEA、Eclipse),创建项目。
  2. 依赖配置

    • 根据项目需求,在 pom.xml(如果使用 Maven)或 build.gradle(如果使用 Gradle)中配置所需的依赖库,例如 Spring Boot Starter、数据库驱动、Web 框架、模板引擎等。
  3. 编写业务代码

    • 创建控制器(Controller)、服务(Service)、数据访问对象(DAO)等业务组件。
    • 编写业务逻辑代码,实现项目的具体功能。可以采用面向对象的设计原则和模式,例如 MVC 模式、依赖注入等。
  4. 配置文件

    • 编写 application.propertiesapplication.yml 配置文件,配置应用程序的属性、数据库连接、日志等信息。可以根据不同的环境(如开发、测试、生产)创建不同的配置文件。
  5. 单元测试

    • 编写单元测试代码,验证业务逻辑的正确性。可以使用 JUnit、Mockito 等测试框架进行单元测试。
  6. 启动应用

    • 运行主应用类(通常是带有 @SpringBootApplication 注解的类),启动 Spring Boot 应用程序。Spring Boot 会自动加载配置并启动嵌入式的 Tomcat 服务器。
  7. 调试与优化

    • 在开发过程中进行调试,排查问题并优化代码。
    • 监控应用程序的性能和资源使用情况,根据需要进行优化。
  8. 部署上线

    • 将项目打包成可执行的 JAR 文件或 WAR 文件。
    • 将打包好的文件部署到服务器上,启动应用程序。
  9. 监控与维护

    • 部署后,持续监控应用程序的运行状态,保证应用的稳定性和可用性。
    • 定期维护,及时处理 bug 和问题,不断优化和改进应用程序。

1. 说说SpringBoot相较于SpringMVC优缺点?

Spring Boot 优点:

  1. 简化配置: Spring Boot 提供了自动配置的功能,大部分情况下不需要手动配置,减少了开发人员的工作量。
  2. 快速启动: Spring Boot 可以快速启动一个独立的应用程序,不需要配置繁琐的环境,提高了开发效率。
  3. 集成度高: Spring Boot 集成了大量常用的第三方库和组件,可以方便地进行开发,如集成了 Tomcat、Jetty 等 Web 容器。
  4. 内嵌服务器: Spring Boot 支持内嵌式的服务器,可以将应用程序打包成一个可执行的 JAR 文件,方便部署和运行。
  5. 微服务支持: Spring Boot 对微服务架构有很好的支持,可以方便地构建和管理微服务应用。

Spring Boot 缺点:

  1. 学习曲线: 对于初学者来说,Spring Boot 的自动配置和约定大于配置的特性可能会增加学习的难度。
  2. 灵活性降低: 由于 Spring Boot 的自动配置,有时会导致灵活性降低,不够灵活地定制配置。
  3. 依赖冲突: 当项目中引入多个依赖时,可能会出现依赖冲突的问题,需要进行排查和解决。

Spring MVC 优点:

  1. 灵活性高: Spring MVC 提供了丰富的配置选项和灵活的组件组合方式,可以满足各种复杂的业务需求。
  2. 定制性强: Spring MVC 可以根据实际需求灵活地定制各种组件和功能,满足个性化的开发需求。
  3. 生态丰富: Spring MVC 作为 Spring Framework 的一部分,可以与 Spring 生态中的其他组件无缝集成,如 Spring Security、Spring Data 等。
  4. 可扩展性好: Spring MVC 提供了丰富的扩展点和接口,可以方便地进行功能扩展和定制。

Spring MVC 缺点:

  1. 繁琐的配置: Spring MVC 需要手动配置大量的 XML 或 Java 注解,配置相对繁琐,增加了开发人员的工作量。
  2. 启动慢: Spring MVC 项目启动较慢,需要加载大量的配置和组件,启动时间较长。
  3. 项目依赖: Spring MVC 需要依赖于 Spring Framework,如果项目只需要部分功能,可能会引入不必要的依赖

2. 说说@Autowired 与@Resource的区别?

@Autowired@Resource 都是用于依赖注入的注解,但它们有一些区别:

  1. 来源不同:

    • @Autowired 是 Spring 提供的注解,用于自动装配 Bean。
    • @Resource 是 Java EE 提供的注解,也可以用于依赖注入,但是其主要作用是通过名称进行注入。
  2. 装配规则不同:

    • @Autowired 默认按照类型(byType)进行自动装配,如果有多个类型匹配的 Bean,则会报错,可以通过 @Qualifier 指定 Bean 的名称。
    • @Resource 默认按照名称(byName)进行自动装配,如果找不到对应名称的 Bean,则按照类型匹配。可以通过 name 属性指定 Bean 的名称。
  3. 使用范围不同:

    • @Autowired 注解可以用在字段、构造方法、Setter 方法以及其他注入点(如方法参数)上。
    • @Resource 注解主要用于字段和方法,不建议用于构造方法。
  4. 所属框架不同:

    • @Autowired 是 Spring Framework 提供的注解,通常与 Spring 相关的组件一起使用。
    • @Resource 是 Java EE 提供的注解,在 Java EE 环境中也可以使用,不过在 Spring 中也是支持的。

3. 平时在浏览器中直接访问域名时不需要输入端口,是否不需要端口号,如果需要,端口号是多少?

通常情况下,浏览器直接访问域名时会默认使用的是标准端口,比如:

  • HTTP 协议默认端口是 80
  • HTTPS 协议默认端口是 443

因此,如果你直接在浏览器中输入域名(比如 example.com),并且你的网站使用了标准的 HTTP 或 HTTPS 协议,就不需要手动输入端口号。浏览器会自动使用默认的端口来访问。

但是,如果你的网站使用了非标准端口,比如 example.com:8080,那么在访问时就需要手动输入端口号。在这种情况下,端口号是 8080。

综上所述,如果网站使用的是标准的 HTTP 或 HTTPS 协议,并且没有特别指定端口号,那么在浏览器中直接访问域名时是不需要输入端口号的。

4. Spring Boot有哪些优点?

Spring Boot 是一个用于简化 Spring 应用开发的框架,它具有许多优点,包括但不限于以下几点:

  1. 简化配置:Spring Boot 提供了自动配置的功能,大多数情况下不需要手动配置,只需按照约定即可使用默认配置,极大地简化了项目的配置过程。

  2. 快速启动:Spring Boot 使用嵌入式的 Tomcat、Jetty 或 Undertow 等服务器,可以将应用程序打包成可执行的 JAR 文件,只需运行一个命令即可启动应用,简化了部署和启动过程。

  3. 集成性强:Spring Boot 集成了大量常用的第三方库和框架,包括 Spring MVC、Spring Data、Spring Security 等,开发者可以方便地使用这些库来构建应用程序。

  4. 生态丰富:Spring Boot 生态系统庞大,拥有大量的插件和扩展,可以轻松地集成各种功能和服务,比如数据库、消息队列、缓存等,满足不同应用场景的需求。

  5. 微服务支持:Spring Boot 提供了对微服务架构的良好支持,可以快速构建和部署微服务应用,并且可以轻松地集成服务注册与发现、负载均衡、断路器等微服务相关的功能。

  6. 自动化测试:Spring Boot 提供了测试支持,可以方便地编写单元测试、集成测试和端到端测试,保证应用程序的质量和稳定性。

  7. 监控与管理:Spring Boot 提供了丰富的监控和管理功能,包括健康检查、指标监控、日志管理等,帮助开发者实时监控和管理应用程序的运行状态。

  8. 社区活跃:Spring Boot 是由 Spring 社区维护和支持的开源项目,拥有庞大的用户群和活跃的社区,开发者可以在社区中获取到丰富的资源和支持。