编程语言动力节点-王妈妈Springboot教程(二)Spring boot快速入门
第二章 Spring boot快速入门
视频观看地址:
动力节点springboot视频教程-专为springboot初学者打造的教程_哔哩哔哩_bilibili
1.第一种方式:https://start.spring.io
使用springboot提供的初始化器。向导的方式,完成springboot项目的创建:使用
方便。
1.1创建项目步骤
step1:新建项目
step4:最后创建项目,设置项目的目录位置
step5:SpringBoot项目目录结构
1.2起步依赖
2.第二种方式,使用springboot提供的初始化器,使用的国内的地址
国内地址:https://start.springboot.io
创建项目的步骤同上
3.第三种方式使用maven向导创建项目
创建一个普通maven项目
修改项目的目录
添加SpringBoot依赖
创建启动类:加入@SpringBootApplication注解
3.1入门案例
3.2入门案例分析
3.3重要注解
@SpringBootApplication:@SpringBootApplication是一个复合注解,是由
@SpringBootConfiguration,@EnableAutoConfiguration,@ComponentScan联合在一起组
成的。
@SpringBootConfiguration:就是@Configuration这个注解的功能,使用
@SpringBootConfiguration这个注解的类就是配置文件的作用。
@EnableAutoConfiguration:开启自动配置,把一些对象加入到spring容器中。
@ComponentScan:组件扫描器,扫描注解,根据注解的功能,创建javabean,给属性赋值等等。组件扫描器默认扫描的是@ComponentScan注解所在的类,类所在的包和子包。
4.SpringBoot核心配置文件
SpringBoot的核心配置文件用于配置SpringBoot程序,名字必须以application开始
4.1.properties文件(默认采用该文件)
在002-springboot-springmvc项目基础上,进行修改
项目名称:003-springboot-port-context-path
通过修改application.properties配置文件,在修改默认tomcat端口号及项目上下文件根键值对的properties属性文件配置方式
启动应用,在浏览器访问http://localhost:9092/boot/
4.2.yml文件
项目名称:005-springboot-yml,在之前项目基础之上
yml是一种yaml格式的配置文件,主要采用一定的空格、换行等格式排版进行配置。yaml是一种直观的能够被计算机识别的的数据序列化格式,容易被人类阅读,yaml类似于xml,但是语法比xml简洁很多,值与前面的冒号配置项必须要有一个空格,yml缀也可以使用yaml后缀
注意:当两种格式配置文件同时存在,在SpringBoot2.4开始,使用的是yml配置文件.
修改配置名称都为application。
重新运行Application,查看启动的端口及上下文根
推荐使用yml格式配置文件
4.3多环境配置
在实际开发的过程中,我们的项目会经历很多的阶段(开发->测试->上线),每个阶段
的配置也会不同,例如:端口、上下文根、数据库等,那么这个时候为了方便在不同的环境之间切换,SpringBoot提供了多环境配置,具体步骤如下
项目名称:006-springboot-multi-environment
为每个环境创建一个配置文件,命名必须以application-环境标识.properties|yml
application.properties
application-dev.properties
application-product.properties
application-test.properties
4.4SpringBoot自定义配置
SpringBoot的核心配置文件中,除了使用内置的配置项之外,我们还可以在自定义配置,然后采用如下注解去读取配置的属性值
4.4.1@Value注解
@Value("${key}"),key来自application.properties(yml)
application.properties:添加两个自定义配置项school.name和
school.website。在IDEA中可以看到这两个属性不能被SpringBoot识别,背景是桔色的
读取配置文件数据
@RequestMapping("/hello") @ResponseBody public String doHello(){ return "hello, port:" + port + "学校: "+name+",网站: "+site ; } }
启动应用Application,访问浏览器
4.4.2@ConfigurationProperties
项目名称:008-springboot-custom-configuration
将整个文件映射成一个对象,用于自定义配置项比较多的情况
案例演示
在com.bjpowernode.springboot.config包下创建SchoolInfo类,并为该类加上Component和ConfigurationProperties注解,prefix可以不指定,如果不指定,那么会去配置文件中寻找与该类的属性名一致的配置,prefix的作用可以区分同名配置
创建SchoolController
执行Application,访问浏览器查看数据
4.4.3警告解决
➢在SchoolInfo类中使用了ConfigurationProperties注解,IDEA会出现一个警告,不影响程序的执行
➢点击opendocumentnation跳转到网页,在网页中提示需要加一个依赖,我们将这个依赖拷贝,粘贴到pom.xml文件中
org.springframework.bootspring-boot-configuration-processortrue
4.4.4中文乱码
如果在SpringBoot核心配置文件中有中文信息,会出现乱码:
◼一般在配置文件中,不建议出现中文(注释除外)
◼如果有,可以先转化为ASCII码
4.4.5提示
大家如果是从其它地方拷贝的配置文件,一定要将里面的空格删干净
5.SpringBoot中使用JSP
5.1在pom.xml文件中配置以下依赖项
5.2在pom.xml的build标签中要配置以下信息
SpringBoot要求jsp文件必须编译到指定的META-INF/resources目录下才能访问,否则
访问不到。其实官方已经更建议使用模板技术(后面会讲模板技术)
— SpringBoot 要求 jsp 文件必须编译到指定的 META-INF/resources 目录下才能访问, 否则访问不到。 其它官方已经建议使用模版技术(后面会课程会单独讲解模版技 术) --> src/main/webappMETA-INF/resources**/*.*
5.3在application.properties文件配置SpringMVC的视图展示为jsp,这里相当于SpringMVC的配置
#配置 SpringMVC 的视图解析器 #其中: /相当于 src/main/webapp 目录 spring.mvc.view.prefix=/ spring.mvc.view.suffix=.jsp
集成完毕之后,剩下的步骤和我们使用SpringMVC一样
5.4在com.bjpowernode.springboot.controller包下创建JspController类,并编写代码
@Controller public class SpringBootController { @RequestMapping(value = "/springBoot/jsp") public String jsp(Model model) { model.addAttribute("data","SpringBoot 前端使用 JSP 页面! "); return "index" ; } }
5.5在src/main下创建一个webapp目录,然后在该目录下新建index.jsp页面
如果在webapp目录下右键,没有创建jsp的选项,可以在ProjectStructure中指定webapp为WebResourceDirectory
5.6在jsp中获取Controller传递过来的数据
5.7重新运行Application,通过浏览器访问测试
6. SpringBoot中使用ApplicationContext
在main方法中SpringApplication.run()方法获取返回的Spring容器对象,再获取业务bean进行调用.
创建SpringBoot项目:010-springboot-container
指定项目的gav和版本等信息
选择依赖:
创建一个接口UserService和他的实现类
创建启动类,main方法中获取容器对象
7. CommandLineRunner接口
开发中可能会有这样的情景。需要在容器启动后执行一些内容。比如读取配置文件,数据库连接之类的。SpringBoot给我们提供了两个接口来帮助我们实现这种需求。这两个接口分别为CommandLineRunner和ApplicationRunner。他们的执行时机为容器启动完成的时候。
这两个接口中有一个run方法,我们只需要实现这个方法即可。这两个接口的不同之处
在于:ApplicationRunner中run方法的参数为ApplicationArguments,而CommandLineRunner
接口中run方法的参数为String数组
创建SpringBoot项目,不用选依赖,或者修改010-springboot-container
创建SomeService接口和实现类,定义sayHello()方法
实现CommandLineRunner接口
运行主类,查看输出结果
文章来源:https://www.cnblogs.com/linkeke/p/15788465.html