springboot学习日记01

springboot中核心配置文件application.properties、application.yaml和application.yml同时存在时,依据application.properties为先,如果没有配置,则按照后面两个的来。

spring从2002年在国外开始使用,2003年传入国内。spring的两个核心是IOC控制反转和AOP面向切面编程。

项目创建

创建springboot项目是在Spring Initializr中,默认是使用Default htttps://start.spring.io,如果网络不好,无法创建,可以使用下面一行中的自定义Custom,手动输入网址,利用国内阿里云镜像进行创建,网址:https://start.aliyun.com/。创建出来的项目结构和官方默认地基本相同,pom文件会略有不同,但功能相同,版本会比官方默认的慢一些。


启动类启动的是spring ioc容器,返回的是一个容器


修改启动项目时的大logo,在resources资源文件夹下创建一个banner.txt的文件,在里面直接输入新的logo就可以。如果想关闭logo的显示,可以在配置文件中添加如下语句:

spring.main.banner-mode=off

或者在启动类中输入如下代码

setBannerMode(Banner.Mode.OFF)
setBannerMode(Banner.Mode.CONSOLE)

表示在控制台输出logo


使用@RequestMapping()时,返回的是一个字符串而不是一个页面时,需要加上@ResponsBody以表示返回的是一个字符串。不加则表示返回的是一个页面路径

public @ResponsBody String test(){
	return "test Spring Boot";
}

springboot项目中的依赖版本都是可以在pom文件中进行覆盖修改的,但修改可能会导致部分不兼容而导致报错的问题。例如修改tomcat的版本

<properties>
<java.version>1.8</java.version>
<tomcat.version>9.0.36</tomcat.version>
</properties>

其它的类似,都是这样修改


springboot集成mybatis,添加如下依赖。

<dependency>
	<groupId>org.mybatis.spring.boot</groupId>
	<artifactId>mybatis-spring-boot-starter</artifactId>
	<version>2.1.3</version>
</dependency>

因为spring和springMVC集成mybaits都是由mybatis来负责完成的,所以添加mybatis依赖时,需要添加版本号,不像其它依赖一样可以集成父依赖的版本号。


springboot添加MySQL的jdbc驱动包依赖

<dependency>
	<groupId>mysql</groupId>
	<artifactId>mysql-connector-java</artifactId>
</dependency>

#配置数据库连接信息,application.properties配置文件
spring.datasource.url=jdbc:mysql://localhost:3306/finance?serverTimezone=GMT%2B8&useUnicode=true&characterEncoding=utf-8&useSSL=true
spring.datasource.username=root
spring.datasource.password=123456
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
#数据库连接配置,application.yaml配置文件
spring:
  datasource:
    #用户名
    username: root
    #密码
    password: 123456
    # url需要指定时区serverTimezone为 GMT%2B8 :北京时间东八区
    url: jdbc:mysql://localhost:3306/finance?serverTimezone=GMT%2B8&useUnicode=true&characterEncoding=utf-8&useSSL=true
    # 新版的驱动类改成了com.mysql.cj.jdbc.Driver
    driver-class-name: com.mysql.cj.jdbc.Driver

#指定mybatis的配置文件
mybatis.config-location=classpath:mybatis-config.xml
#指定mapper.xml的文件
mybatis.mapper-locations=

Idea中,当你从其它地方粘贴一个文件到新项目中时,它往往是不编译的,需要我们手动编译build,否则运行会报错


<build>
	<resources>
		<resource>
			<directory>src/main/java</directory>
			<includes>
			<!--**表示多级目录,*表示任意字符集(名字,)此处的xml文件多为
			  mapper.xml,include表示包含,将sec/main/java下所有以xml结尾
			  的文件均进行编译,编译到target包中-->
				<include>**/*.xml</include>
			</includes>
		</resource>
		<resource>
			<directory>src/main/resources</directory>
			<includes>
			<!--把sec/main/resources所有的文件都编译到target中去-->
				<include>**/*.*</include>
			</includes>
		</resource>
	</resources>
<build>

controller类返回jsp页面,需要在pom文件中添加解析jsp依赖

	<!--前端页面使用JSP-->
	<!--引入Spring Boot内嵌的tomcat对JSP的解析包-->
	<dependency>
		<groupId>org.apache.tomcat.embed</groupId>
		<artifactId>tomcat-embed-jasper</artifactId>
	</dependency>
	<!--jstl标签依赖的jar包-->
	<dependency>
		<groupId>javax.servlet</groupId>
		<artifactId>jstl</artifactId>
	</dependency>

添加返回路径时的前后缀

spring.mvc.view.prefix=/
spring.mvc.view.suffix=.jsp

Maven的pom.xml中配置页面jsp编译位置

	<build>
		<resource>
			<directory>src/main/webapp</directory>
			<targetPath>META-INF/resources</targetPath>
			<includes>
				<!--把src/main/webapp下的所有文件都编译到tatget目录中,
				位置为targetPath指定的目录文件-->
				<include>**/*.*</include>
			</includes>
		</resource>
	<build>

	<!--热部署插件,运行时使用右键run的方式运行,再次修改代码后,
	不需要停掉服务重启,在上面任务栏Build中重新build一下,
	devtoos插件就会自动帮助重启服务-->
	<dependency>
		<groupId>org.springframework.boot</groupId>
		<artifactId>spring-boot-devtools</artifactId>
	</dependency>

SpringBoot中使用Jsp

SpringBoot并不推荐使用Jsp,而是使用template,所以在SpringBoot中使用Jsp需要进行一些配置

  • 首先在src目录下创建webapp文件夹,此时知识普通的文件夹,需要到右上角的工程结构按钮中改变此文件夹的属性,使其成为web文件夹,选择该模块,点击Web,右下角的Web Resource Directory中将webapp文件夹添加一下。
    在这里插入图片描述
  • 在application.properties中配置Jsp的视图解析器
	#配置视图解析器
	#/ = /src/main/webapp
	spring.mvc.view.prefix=/
	spring.mvc.view.suffix=.jsp
  • 在pom.xml文件中添加相应的依赖
<dependency>
	<groupId>org.apache.tomcat.embed</groupId>
	<artifactId>tomcat-embed-jasper</artifactId>
</dependency>


 <!--指定Jsp编译后的存放目录-->
        <resources>
            <resource>
                <!--Jsp原来的目录-->
                <directory>src/main/webapp</directory>
                <!--指定编译后存放的目录-->
                <targetPath>META-INF/resources</targetPath>
                <!--指定处理的目录和文件-->
                <includes>
                    <include>**/*.*</include>
                </includes>
            </resource>
        </resources>

配置好以上的内容之后便可以正常使用

SpringBoot集成MyBatis

默认情况下,Mybatis 的 xml 映射文件不会编译到 target 的 class 目录下,因此需要进行相应的配置。有两种方法均可以实现。

方式一

在 pom.xml 文件中配置 resource

<resources>
         <resource>
             <directory>src/main/java</directory>
             <includes>
                 <include>**/*.xml</include>
             </includes>
         </resource>
     </resources>	

注释掉 StudentMapper 接口上的@Mapper 注解

	//@Mapper
	public interface AdminMapper {
	    Admin queryById(Integer id);
	}

在运行的主类上添加注解包扫描MapperScan(“com.abc.springboot.mapper”)

	@SpringBootApplication 
	//Mybatis 提供的注解:扫描数据持久层的 mapper 映谢配置文件,DAO 接口上就不用加@Mapper 
	//basePackages 通常指定到数据持久层包即可 
	@MapperScan(basePackages = "com.lml.mapper") 	
	//@MapperScan("com.lml.mapper")也可以
	public class Application { 

方法二

因为 SpringBoot 不能自动编译接口映射的 xml 文件,还需要手动在 pom 文件中指定,所以有的公司直接将映射文件放到 resources 目录下 ,在 resources 目录下新建目录 mapper 存放映射文件,将 StudentMapper.xml 文件移到resources/mapper 目录下:
在这里插入图片描述
在 application.properties 配置文件中指定映射文件的位置:

# 指定 Mybatis 映射文件的路径
mybatis.mapper-locations=classpath:mybatis/mapper/*.xml

JSON

JSON(JavaScript Object Notation)是一种轻量级的数据交换格式。它是基于JavaScript语言的一个子集,但可以被多种不同的编程语言解析和生成。JSON格式的数据可以通过网络在客户端和服务器之间进行传输和交换。

JSON使用键值对来表示数据,键和值之间使用冒号分隔,多个键值对之间使用逗号分隔,最外层使用大括号包裹。例如:

{
  "name": "John",
  "age": 30,
  "city": "New York"
}

在JSON中,键必须是一个字符串,值可以是任何类型的数据,包括数字、字符串、布尔值、数组、对象等。例如:

{
  "name": "John",
  "age": 30,
  "isMarried": false,
  "hobbies": ["reading", "music", "travel"],
  "address": {
    "street": "123 Main St",
    "city": "New York",
    "state": "NY",
    "zip": "10001"
  }
}

JSON是一种非常常见的数据格式,被广泛用于Web应用程序和移动应用程序等领域。由于其轻量级、易于解析和生成、语言无关等特点,越来越多的API也采用JSON格式来进行数据交换。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

念雪、难忘

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值