1.几个概念
本系列笔记参考视频:
脚手架
脚手架是指一种预先搭建好的项目结构或框架,旨在帮助开发人员快速启动新项目,并提供一致性和规范性的基础。脚手架通常包括了项目所需的基本目录结构、配置文件、依赖管理等,以及可能的基本功能模块或示例代码。
脚手架的概念类似于搭建房屋时使用的木质或金属支架。它为整个项目提供了一个稳定的基础,使开发者能够更快速地进行开发,而无需从零开始搭建项目结构。通过使用脚手架,开发者可以避免重复劳动,同时确保项目遵循一致的最佳实践和标准。
脚手架可以是通用的,适用于各种类型的项目,也可以是针对特定类型或技术栈的定制化工具。例如,针对Web开发的脚手架可能包含了Web框架、数据库访问层、安全性配置等;而针对移动应用开发的脚手架可能包含了UI框架、网络请求库、本地存储等。
Java项目脚手架工具
- Spring Initializr :Spring Initializr 是一个官方提供的快速创建Spring Boot项目的工具。通过访问网站或使用IDE插件,可以选择所需的依赖和配置,然后生成一个基本的Spring Boot项目结构。
- Maven Archetype :Maven Archetype 是Apache Maven提供的一种创建项目结构的工具。它允许通过命令行或IDE插件生成项目模板,包括所需的目录结构、依赖和配置。
- JHipster :JHipster是一个用于快速开发现代化Web应用的项目生成器。它结合了Spring Boot、Angular/React/Vue等前端框架以及一些其他技术,提供一个全功能的Web应用的初始结构。
技术选型
Java技术选型通常取决于项目需求、团队技能、性能要求、可扩展性、安全性以及可维护性等因素。以下是一些常见的Java技术和框架,可以根据具体情况进行选型:
- Java版本 :确定使用哪个Java版本,通 常是Java 8、Java 11或者更高版本。要考虑的因素包括性能改进、新特性、长期支持等。
- Web框架 :在构建Web应用,可以选择Spring框架(包括Spring Boot、Spring MVC等)。Spring提供了广泛的功能,包括依赖注入、AOP、事务管理等。另外,也可以考虑其他框架,如Micronaut、Quarkus等。
- 持久层框架 :对于数据库访问,可以选择Hibernate、MyBatis等。这些框架可以简化数据库操作,并提供ORM(对象关系映射)功能。
- RESTful服务框架 :如果需要构建RESTful API,可以选择Spring Boot框架,结合Spring MVC或Spring WebFlux。这些框架提供了快速开发RESTful服务的功能。
- 消息队列/事件总线 :如果应用需要处理异步消息或事件,可以考虑使用Kafka、RabbitMQ、ActiveMQ等消息队列或事件总线。
- 微服务框架 :如果应用需要采用微服务架构,可以选择Spring Cloud、Quarkus等微服务框架来简化微服务的开发和管理。
- 缓存 :对于需要高性能的应用,可以考虑使用缓存来提升性能。常见的Java缓存框架包括Ehcache、Redis、Caffeine等。
- 安全框架 :为了保护应用的安全性,可以选择Spring Security等安全框架来实现身份认证、授权管理等功能。
- 测试框架 :在开发过程中,使用测试框架进行单元测试、集成测试和端到端测试是很重要的。JUnit、Mockito、TestNG等是常用的测试框架。
- 构建工具 :选择合适的构建工具来管理项目的依赖和构建过程。常见的Java构建工具包括Maven和Gradle。
常用的技术选型度量点
- 性能 :技术选型的性能是一个重要考量因素。这包括系统的响应时间、吞吐量、并发能力等。根据项目的具体需求评估技术的性能表现,并考虑是否满足预期的性能要求。
- 可扩展性 :技术选型应考虑到系统未来的扩展性需求。技术是否能够轻松地扩展到更大的规模?是否能够支持更多的用户、更大的数据量或更复杂的业务逻辑?可扩展性也包括技术的水平和垂直扩展能力。
- 安全性 :系统的安全性是至关重要的。技术选型应考虑到安全漏洞、数据隐私保护、身份验证和授权等方面。评估技术的安全特性以及社区对安全问题的关注程度。
- 可维护性 :一个易于维护的系统能够降低开发和维护成本,并提高代码质量。技术选型应考虑到代码的可读性、模块化、文档完整性、测试覆盖率等因素。
- 生态系统和社区支持 :一个成熟的技术生态系统和活跃的社区对于技术选型来说是至关重要的。这包括技术的开发者社区、文档、教程、第三方库和工具支持等。一个活跃的社区能够为开发者提供及时的支持和解决问题的渠道。
- 成本 :技术选型的成本也是一个重要考虑因素。这包括开发成本、运维成本、许可费用等。需要评估不同技术选项的成本,并权衡其与项目预算的匹配度。
- 适用场景 :最后,技术选型应考虑到项目的具体场景和需求。不同的技术可能更适用于不同类型的项目,例如Web应用、移动应用、大数据处理、物联网等。
常用技术选型
当前项目选型:
- 主框架:Springboot + Spring Framework + SpringSecurity
- 持久层:Apache MyBatis + Hibernate Validation + Alibaba Druid
- 视图层:Vue + ElementUI
- 其他:Activiti7 + POI + Redis
Reference Links:
#若依框架学习视频: