发布网友 发布时间:2024-09-06 12:52
共1个回答
热心网友 时间:2024-09-24 19:53
SpringBoot-简介接触SpringBoot已经很长时间了,但对SpringBoot的理解还是虚虚实实,找不着北,所以决定花一些时间总解下,虽然不知道能不能坚持下来,但先开始吧!
SpringBoot是一个便于创建独立的、生产级的、基于Spring的应用程序框架,你可以很方便的启动程序。
以上是SpingBoot官方给的特点升洞,涵盖了SpringBoot的主要特性,下面也谈谈自己的使用心得。
可以在网站直接创建,也可以使用IDEA等IDE创建,可以选择基于Maven或Gradle工程
官网创建工程:
SpringBoot支持创建jar包和war包。创建的jar包是内嵌tomcat,可以通过java-jarxxx.jar命令启动。创建war包是外置tomcat,可以放到tomcat容易启动
何为约定优于配置?
简单来说就是两点
SpringBoot项目的约定
SpringBoot创建完成后默认的配置文件是以properties为后缀名,SpringBoot支持将后缀名改为yml。yml后缀名的配置文件可读性更加舒适
SpringBoot是Spring的一套快速配置脚手架,可以基于SpringBoot快速开发单个微服务,而SpringCloud是一个基于SpringBoot实现的微服务框架。
SpringBoot是或笑一个基于Spring的快速开发框架,它通过“懒人整合包”(starter)将Spring常用的jar包包含在内,解决Spring依赖繁多问题。通过衫笑含单一配置文件,解决了传统项目繁多、复杂的配置。约定优于配置的原则使项目搭建起来更多方便快捷。
SpringBoot项目目录结构
根目录:com.example.demo
1)启动类(gApplication.java)
????????推荐放在根目录com.example.demo包下
2)实体类(domain)
3)数据接口访问层(Dao)
4)数据服务接口层(Service)推荐:com.example.demo.service
5)数据服务实现纤档嫌层(ServiceImplements)推荐:com.example.demo.service.impl
????????使用idea的同学推荐使用com.example.demo.serviceImpl目录
6)前端控制器层(Controller)推荐:com.example.demo.controller
7)工具类库(utils)推荐:com.example.demo.utils
8)配置类(config)推荐:com.example.demo.config
9)数据传输对象(dto)推荐:com.example.demo.dto
10)视图包装对象(vo)推荐:com.example.demo.vo
根目录:resources
1)项目配置文件:resources/application.yml
2)静态资源目录蠢大:resources/static/
?毁手???????用于存放html、css、js、图片等资源
3)视图模板目录:resources/templates/
????????用于存放jsp、thymeleaf等模板文件
4)mybatis映射文件:resources/mapper/(mybatis项目)
5)mybatis配置文件:resources/mapper/config/(mybatis项目)
SpringBoot从入门到精通-项目搭建SpringBoot极大的简化了java项目的开发,在之前如果想要开发一个java项目,需要安装tomcat或搜樱戚者其他容器插世陵件。但是SpringBoot内部已经集成了tomcat,因此项目的启动异常的方便。而且SpringBoot的开发中有很多默认的配置,帮助我们省去了相当多的时间。
在idea中,File--New--Project...
选择SpringInitializr
填写你的maven项目的groupId和artifact等项目基本信息之后,在依赖中选择Web--Web之后finish。
目录结构如下:
直接运行DemoApplication.java就可以运行项目了。
你也可以使用官方模板快速开始SpringBoot项目
接下来我们分析一下pom.xml中的依赖。
SpringBoot中还有一个很重要的文件:application.properties/yml/yaml文件。
项目中的配置不再是以前的xml形式,而是写在这个文件中。SpringBoot已经为我们提供了很多默认的配置。
以上我们搭建了一个颂洞完全没有进行任何操作的SpringBoot框架,下一节我们将继续为我们的项目添砖加瓦一步步深入了解SpringBoot。SpringBoot从入门到精通-初识注解、接口
SpringBoot目录结构以Maven工程形式新建一个springboot项目。目录结构如下:
重点介绍resources目录:
在resources文件夹或与其并列的文弊裤件夹下建立public文件夹,在public文件铅贺夹下的html文件可以通过浏览租激简器中输入文件+后缀名的方式直接访问的.??
一、public文件夹(需要自己手动新建),就相当于在eclipse的web项目中的WEB-INF文件夹外的文件,是不需要通过服务器内部进行访问的。
二、templates文件夹,是放置模板文件的,因此需要视图解析器来解析它。所以必须通过服务器内部进行访问,也就是要走控制器--服务--视图解析器这个流程才行。
三、static文件夹,既不能直接访问,也不能通过服务器访问到。因此,这个文件夹,可能是放一些css、图片这样的文件供服务器内部引用。
application.properties文件,全局配置文件。
才疏学浅之处,切莫在意。
????????????????????????????????????????????????????——2019.6.10?下午
SpringBoot项目结构及功能在IntelliJ使用SpringInitializer快速创建项目
这是pom文件中父项目,再进一步查看其spring-boot-starter-parent
发现真正管理SpringBoot应用里面的所有依赖版本的地方在这spring-boot-dependencies
SpringBoot的版本仲裁中仿闹心;
以后我们导入依赖默认是不需要写版本;(没有在dependencies里面管理的依赖自然需要声明版本号)
再往下看:
这是springboot的web场景启动器,只要引入了它,就能帮我们导入了web模块正常运行所依赖的组件;
@SpringBootApplication:SpringBoot应用标注在某个类上说明这个类是SpringBoot的主配置类,SpringBoot就应该运行这个类的main方法来启动SpringBoot应用;
@SpringBootConfiguration:SpringBoot的配置类:标注在某个类上,表示这是一个SpringBoot的配置类;
@Configuration:配置类上来标注这个注解;
配置类-----配置文件;配置类也是容器中的一个组件;@Component
@EnableAutoConfiguration:开启自动配置功能;
以前我们需要配置的东西,SpringBoot帮我们自动配置;@EnableAutoConfiguration告诉SpringBoot开启自动配置功能;这样自动配置才能生效;
在src下创建一个controller包,新建一个HelloController类,之后运行springboot,便可以通过localhost:/8080/hello来访问hello页面。
SpringBoot使用一个全局的配置文件,配置文件名是固定的;
?application.properties
?application.yml
配置文件的作用:修改SpringBoot自动配置的默认值;SpringBoot在底层都给我们自动配置好;
springboot启动会扫描以下位置的application.properties或者application.yml文件作为Springboot的默认配置文件
–file:./config/
–file:./
–classpath:/config/
–classpath:/
优先级由高到底,高优先级的配置会覆盖低优先级的配置;
SpringBoot会从这四个位置全部加载主配置文件;互补配置;
application.yml
@Value获取值和@ConfigurationProperties获取值比较
配置文件yml还是properties他们都能获取到值;
如果说,我们只是在某个业务逻辑中需要获取一下配置文件中的某项值,使用@Value;
如果说,我们专门编写了一个javaBean来和配置文件进行映射,我们就直接使用@ConfigurationProperties;
==我们还可以通过spring.config.location来改变默认的配置文件位置==
项目打包好以后,我们可以使用命令行参数的形式,启动项目的时候来指定配置文件缺槐的新位置;指定配置文件和默认加载的这些配置文件共同起作用形备扮罩成互补配置;
java-jarspring-boot-02-config-02-0.0.1-SNAPSHOT.jar--spring.config.location=G:/application.properties
谈谈对springboot分层中各层的理解1Dao层:持久层,主要是和数据库进行交互
dao层首先胡创建dao接口,接着就可以在配置文件中定义该接口的实现类;接着就可以在模块中调用dao的接口进行数据业务的处理,而不用关注此接口的具体实现是哪一个类,dao层的数据源和数据库实在配置文件中进行配置的。
2Entity层:实体层,数据库在项目中的类
主要用于定义与数据库对象的属性,提供get/set方法,带参和无参的构造方法。
3Service层:业务层控制业务
业务模块的逻辑应用设计,和DAO层一样都是先设计接口,再创建要实现的类,然后在配置文件中进行配置其实现的关联。接下来就可以在service层调用接口进行业务逻辑应用的处理。
好处:封装Service层的业务逻辑有利于业务逻辑的独立性和重复利用性。
4.Controller层:控制层控制业务逻辑
具体的业务模块流程的控制,controller层主要调用Service层里面的接口控制具体的业务流程,控制的配置也要在配置文件中进行。
Controller和Service的区别是:Controller负责具体的业务模块流程的控制;Service层负责业务模块的逻辑应用设计
总结:具体的一个项目中有:controller层调用了Service层的方法,Service层调用Dao层的方法,帆没其中调掘轿拆用的参数是使用Entity层进行传递的。
补充:5、View层此层与控制层结合比较紧密,需要二者结合起来协同工发。View层判枣主要负责前台jsp页面的表示