Giter Club home page Giter Club logo

springboot-examples's Introduction

springboot-examples

目的

    1. 创建基本工程以及示例代码;
    1. 架构基础,创建脚手架工程;
    1. 对重要代码记录笔记;
    1. 深入理解框架的设计**

项目说明

    1. 项目的结构
    1. 软件的版本,需要注意的地方
    1. 常用操作的脚手架,对框架的再次封装,方便自己使用,理解
    1. 学习框架的编码风格,深入理解框架的设计**

一、springboot-2.2.0-SNAPSHOT-jpa-thymeleaf

框架:springboot-2.2.0-SNAPSHOT,jpa,thymeleaf 数据库:mysql

工程配置结构:

代码结构简单,直接导入看源码,在此不一一赘述。

常用操作

JPA的常用操作已经够用了,基本没有必要封装,如果与复杂的业务需求需要自己配置实体之间的依赖的话,建议多多熟悉Hibernate框架

注意事项

相对于全自动映射框架Hibernate来操作很多数据处理的复杂业务,我更倾向于MyBatis半自动映射框架,可以自己编写SQL语句,可控性更强 自动化的优点是省时,省力,快速,易用。缺点也显而易见,配置不可见,如果对框架各个组件不熟悉的话,出错之后分析困难,不出问题还好,一出问题就不知所措!而且封装太多不利于初学者对框架的学习于理解。 所以开发时选择框架很重要,可以依据自己对框架的掌握程度,以及团队人员的知识优势来选择。必要时可以进行集体培训。

二、springboot-2.0.0.RELEASE +mongodb,springboot-2.2.0-SNAPSHOT+mongodb

框架:springboot-2.0.0.RELEASE,mongo 数据库:mongodb

工程配置结构:

相同点: - 1.都是基于springboot, mongoTemplate做的; - 2. 都是maven工程,都有一个api,common子模块 不同点: - 1. jar包版本不一样,不过可以任意切换; - 2. 2.0.0.RELEASE版本的service,dao和启动类是在同一个目录下,2.2.0-SNAPSHOT的service,dao是在common依赖子模块中,这就导致controller要自适配(@Autowired)service,dao 的话,需要在启动类中配置明确的扫描路径,不然controller依赖不到service,dao

常用操作

常用增,删,改,查,以及批量操作的脚手架,可直接用于生产环境

public abstract class MongoCommonDaoImpl implements IMongoCommonDao{

    @Autowired
    private MongoTemplate mongoTemplate;
    
    ……

}

只需要继承这个公共类即可获得增,删,改,查,分页查询,批量增加,批量修改等常用操作,可根据自己的需要修改

注意事项

springboot 的自动装配是默认开启的,启动类运行时,会自上而下扫描 同目录以及其子目录的包中的注解,如果你的maven子模块有相互依赖(比如我的这个示例项目) 那就必须在启动类中配置注解,注明需要扫描的依赖包的路径,自动会注入失败! 有个疑问:当指定了固定扫描的包路径时,默认的自动装配是否就失效了?

总结

脚手架虽然需要仔细琢磨,测试,但是写好之后,很方便业务接口的开发,而且有利用理解框架的设计方式与**,建议自己封装一遍属于自己的脚手架框架

不定期更新,敬请期待!

springboot-examples's People

Contributors

108day avatar doomsangle avatar

Stargazers

 avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.