目录
SpringBoot
创建项目
配置文件
注解
命名规范
SpringBoot整合第三方技术
……
- 中文文档:Spring Boot 中文文档
SpringBoot
- Spring Boot 是基于 Spring 框架的一种快速构建微服务应用的方式
- 它主要提供了自动配置、简化配置、运行时应用监控等功能
- 它约定了一套项目开发规则来自动完成整个项目的配置,从而让开发人员能够简单地创建完项目就可以直接进入开发阶段
- 优点:
- 起步依赖(简化依赖配置)
- parent, starter
- 使用任意坐标时,仅书写GAV中的G和A,V由SpringBoot提供,如果发生坐标错误,再指定Version
- 自动配置(简化常用工程相关配置)
- 辅助功能(内置服务器……)
- tomcat(默认):apache出口,应用面广,负载了若干较重的组件
- jetty:更轻量级,负载性能远不及tomcat
- undertow:负载性能勉强胜于tomcat
创建项目
- 推荐使用Maven或Gradle来构建项目
- 快速创建一个SpringBoot项目
- 进入网站:Spring Initializr
- 填写项目的各种配置信息,再添加Spring Web依赖,点击生成压缩包
- 解压压缩包,用IDEA打开解压后得到的文件夹
- 再修改设置里的Maven的仓库信息和使用的jdk版本,pom.xml文件等即可
配置文件
- 默认配置文件为application.yml或application.properties,通常只用于存储SpringBoot项目的核心配置信息
- 存放在项目的src/main/resources目录下,该目录在SpringBoot中的抽象路径为classpath
- 一个项目里可以有多个配置文件,可以把不同类型的配置信息存储在不同的配置文件里
- SpringBoot提供的配置文件格式:(优先顺序:properties>yml)
- application.properties(等号)
- key=value
- application.yml(冒号后有一个空格):
- key: value
- yml数据读取:使用@Value读取单个数据,属性名引用方式:${一级属性名,二级属性名……}
- yml文件内部引用属性:使用${xxx(属性名)},一变全变
- 属性值中的转义字符需要用双引号包起
- lesson: "Spring\tboot\nlesson"
- 配置信息的简便用法:(把配置文件里需要的那部分信息封装成一个对象使用)
- (1)使用@ConfigurationProperties注解绑定配置信息到封装类中
- (2)封装类需要定义为Spring管理的bean,否则无法进行属性注入
注解
- SpringBoot常用注解:
- @SpringBootApplication
- 每一个SpringBoot项目中都有一个启动类(主类),启动类必须被@SpringBootApplication注解标注,用于启动一个SpringBoot项目的SpringBootApplication.run()方法
- 一个项目应该只使用一次@SpringBootApplication注解
- 其只能扫描它所在的包及其子包中的代码,如果无法被扫描到,相当于无效代码
- SpringBoot工程运行后初始化Spring容器,扫描引导类所在的包加载bean
- Bean
- Bean指的是由SpringBoot容器管理的对象
- 依赖关系:一个对象中需要用到另外一个对象
- 依赖注入:SpringBoot在创建一个对象时,会根据“依赖关系”,把这个对象依赖的对象注入其中
- Bean的注册:SpringBoot自动寻找开发人员已经创建好的Bean,并将其保存在SpringBoot容器中
- Bean的注入:把SpringBoot容器中的Bean赋值给某个尚未被赋值的成员变量
- Bean的获取:
- 在类中创建一个属性,通过为属性添加注解,让SpringBoot为这个属性注入Bean
- @Autowired
- @Resource
- @Value
- 当SpringBoot项目被启动时,SpringBoot先会自动扫描所有的组件,然后注册所有的Bean,把这些Bean注入各自的使用场景中
- 组件
- 要想让@Bean生效,那么被标注的方法所在的类必须有下列其中一个的注解,以便被SpringBoot的组件扫描器扫描到
- @Configuration
- @Controller
- @Service
- @Repository
- @Component
- @Import:将@Bean所在类主动注册给SpringBoot
命名规范
包的命名
风格一:以业务场景进行分类
比如与登录有关的都放到login包下
风格二:以功能模块进行分类
比如负责页面跳转的Controller都放到controller包下
常见分类:
配置包:config / configuration,存放被@Configuration标注的类
公共类包:common,存放供其他模块使用的组件、工具、枚举等代码
component:存放被@Component标注的类
utils / tools:存放工具类
constant:存放常量类
控制器包:control / controller
服务包:service,存放所有实现业务的服务类
impl:存放所有实现业务的服务接口
数据库访问接口包
dao,存放用于操作数据库的代码
mapper,项目使用MyBatis作为持久层框架
数据实体包
pojo,项目使用SSH(Spring+Struts+Hibernate)整合框架
model,项目使用SSM(Spring+SpringMVC+MyBatis)整合框架
entity,项目使用MyBatis框架
过滤器包:filter
监听器包:listener
Java文件命名
- 使用“驼峰命名法”:除了第一个单词,后面每个单词的首字母都大写,其他字母小写,单词之间没有下划线
- 以“业务+模块”的方式命名,比如LoginController
- 常见命名方式:
- 控制器类:以Control或Controller结尾
- 服务接口 / 类:以Service结尾
- 接口的实现类:以Impl结尾
- 工具类:以Util结尾
- 配置类:以Config或Configuration结尾
- 组件类:以Component结尾
- 枚举:以Enum结尾
- 实体类:
- 名字必须是名词
- 常见后缀名:
- PO:持久层对象,persistent object
- DO:数据对象, data object
- DTO:数据传输对象, data transfer object
- BO:业务对象, business object
- VO:显示层对象, view object
- POJO:简易的Java对象,plain,ordinary java object
SpringBoot整合第三方技术
- SpringBoot—— MyBatis
- SpringBoot—— Redis
- SpringBoot—— RabbitMQ
- SpringBoot—— Thymeleaf
……
- 学完SpringBoot基础框架知识后,SpringBoot整合其他技术是重难点,用到什么学什么,大体思路不要乱即可