SpringBoot初步学习

SpringBoot初步学习记录

什么是springBoot?

Spring Boot 是所有基于 Spring 开发的项目的起点。Spring Boot 的设计是为了让你尽可能快的跑起来 Spring 应用程序并且尽可能减少你的配置文件。简单来说就是SpringBoot其实不是什么新的框架,它默认配置了很多框架的使用方式,就像maven整合了所有的jar包,spring boot整合了所有的框架(不知道这样比喻是否合适)。

快速创建spring项目
1.使用IDEA工具创建一个spring Initializr项目
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
创建好项目之后的pom.xml文件

在这里插入图片描述

下面这张是创建好的程序的入口类,也就是程序的启动大门
在这里插入图片描述
下面是application.properties文件的一些配置
在这里插入图片描述

yml是springboot提供的一种新的文件,编写起来很方便,但是有固定格式,前面一定要加一个空格,使用idea进行编写前缀相同的会自动归类
在这里插入图片描述

在有的时候呢我们可以使用自定义配置模块,比如以下我位置了一些属性,并且赋了值
在这里插入图片描述
那么这些个属性值应该怎么使用呢?
我们在这里使用@Value的注解进行使用,括号里填写的的我们自定义配置文件里的属性名(单个属性)
在这里插入图片描述
那么还有一种多个属性的方式就是要创建一个实体类并且我跟给它GET and SET方法,注意看这里有一个@ConfigurationProperties注解,这个注解的意思就是所有以app为前缀的属性自动赋值给对应的Bean属性,这个类怎么使用呢?
就是上一张图,使用动态注入的方式进行使用。使用@Resource注解当然也可以使用@Autowire
这里提一下:@Resource与@Autowire的区别
1.@Autowire是Spring开发的,而@Resource是jdk开发的
@Autowire是按照type来注解的,而@Resource是按照名称来的,如果名称找不到,那么就按照type,,如下有例子,我自己测试过, 在一个实现类AnnouncementImpl 加上@Service 在图1-1,那么名称就是myovieLister 类型就是 AnnouncementImpl ,我在 controller层使用的时候可以用 @Autowire或者@Resource都是没问题的
在这里插入图片描述

数据源切换:
在有些时候呢,我们要配置至少两种环境(开发环境以及正式环境)怎么完成切换呢?
我们可以创建三个yml文件,第一个为控制切换源,的文件
第二个是我们的测试环境(数据库为测试)
第三个是我们的生产环境(数据库为生产)
在这里插入图片描述
这里呢,我们制定的是prd也就是生产环境
在这里插入图片描述
还有一点就是我们的日志文件,考虑到一般测试环境有可能为windows系统,但是正式部署的时候大多数是在Linux系统,所以我们日志的路径有的时候可能导致异常,那么在logback.xml我们也进行了配置
.在这里插入图片描述

这个是Spring里提供的日志配置的一些相关信息
在这里插入图片描述
再有的时候呢,日志的信息量比较大的时候,我们的日志文件甚至能够达到几个G的大小,所以查找起来异常信息点比较复杂,这时呢我们可以使用logback日志工具进行日志存储

<?xml version="1.0" encoding="UTF-8"?>
<configuration>

	<!--定义日志保存的路径-->
	<!--1、更改默认的logback.xml为logback-spring.xml
	SpringBoot当看到logback-spring.xml文件存在的时候,才会启动该日志的环境切换
	logback.xml文件没法做到
	2.在需要切换的环境上增加springProfile标签-->
	<springProfile name="dev">
		<property name="LOG_HOME" value="d:/logs/dev/"></property>
	</springProfile>
	<springProfile name="prd">
		<property name="LOG_HOME" value="d:/logs/prd/"></property>
	</springProfile>

	<!--<property name="LOG_HOME" value="d:/logs" />-->
	

	<!--定义一个控制台输出器,名为console-->
	<appender name="console" class="ch.qos.logback.core.ConsoleAppender">
		<!--按pattern指定的格式输出日志,编码为UTF-8-->
		<encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
			<pattern>%d{yyyy-MM-dd HH:mm:ss} %-5level [%thread]  %logger{30} - %msg%n</pattern>
			<charset>UTF-8</charset>
		</encoder>
	</appender>
	<!--定义一个日滚动(每天生成一份)的日志文件-->
	<appender name="file" class="ch.qos.logback.core.rolling.RollingFileAppender">
		<!--按pattern指定的格式输出日志,编码为UTF-8-->
		<encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
			<pattern>%d{yyyy-MM-dd HH:mm:ss} %-5level [%thread]  %logger{30} - %msg%n</pattern>
			<charset>UTF-8</charset>
		</encoder>
		<!-- 定义保存的文件名 -->
		<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
			<!--%d{yyyy-MM-dd}代表每天生成一个新的日志-->
			<fileNamePattern>${LOG_HOME}/mysprintboot_%d{yyyy-MM-dd}.log</fileNamePattern>
			<!--日志最多保存90天,也就是90份-->
			<maxHistory>90</maxHistory>
		</rollingPolicy>
		<!-- 在日滚动文件中,强制只保存错误INFO级别以上信息 -->
		<filter class="ch.qos.logback.classic.filter.LevelFilter">
			<level>ERROR</level>
			<onMatch>ACCEPT</onMatch>
			<onMismatch>DENY</onMismatch>
		</filter>
	</appender>
	<!-- 定义日志全局最低输出级别是INFO,同时向控制台和日滚动文件输出 -->
	<root level="INFO">
		<appender-ref ref="console" />
		<appender-ref ref="file" />
	</root>
</configuration>

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值