SpringBoot 常用配置 相关笔记,springboot创建工程的步骤,springboot中的freemarker模板页面使用,框架整合,部署打包成jar,热部署

一、Spring Boot 入门
Spring Boot 简介
简化Spring应用开发的一个框架; 整个Spring技术栈的一个大整合; J2EE开发的一站式解决方案;
理解:帮你整合好,大部分框架之间的各种配置文件和jar。反正就是省去很多麻烦事。

微服务
每一个springboot项目都是集团公司下的子公司。

YAML语法:(层级之间的关系,一定要Tab缩进,否则不识别)
YAML:以数据为中心,比json、xml等更适合做配置文件;
1、基本语法 k:(空格)v:表示一对键值对(空格必须有); 以Tab的缩进来控制层级关系;只要是左对齐的一列数据,都是同一个层级的

server:
	 port: 8081 
	 path: /hello

注意:属性和值区分大小写

2、值的写法 字面量:普通的值(数字,字符串,布尔) k: v:字面直接来写;
 字符串默认不用加上单引号或者双引号;
 "  ":双引号;不会转义字符串里面的特殊字符;特殊字符会作为本身想表示的意思
 name: "zhangsan \n lisi":输出;zhangsan 换行 lisi 
 '  ':单引号;会转义特殊字符,特殊字符最终只是一个普通的字符串数据 
 name: ‘zhangsan \n lisi’:输出;zhangsan \n lisi

对象、Map(属性和值)(键值对):
k: v:在下一行来写对象的属性和值的关系;注意缩进

对象还是k: v的方式
friends:
	lastName: zhangsan 
	age: 20
行内写法: 
friends: {lastName: zhangsan,age: 18} 

数组(List、Set):
用 - 值表示数组中的一个元素

pets: 
	‐ cat 
	‐ dog 
	‐ pig

行内写法:

   pets: [cat,dog,pig]

二次复习笔记,可以做参考:

三、yaml文件格式,每次下级属性,需要Tab缩进,才行。注意
也是key-value形式,可以表示一个对象、集合。
1、语法:
	key: value
	冒号后需要有一个空格。
	key1:
		key2:
			key3: value

2、取属性的值
	1)可以使用@Value注解取
		@Value("${page.rows}")
    	private Integer rows;
    	
    2)可以使用@ConfigurationProperties
    	把属性的值批量绑定到一个对象上。
    	
    	@ConfigurationProperties(prefix = "person")
		@Component
		public class Person {
		    private String name;
		    private int age;
		    private String sex;
		    private String address;
		    get和set方法省....

    使用yml可以表示的数据:
    	key: value
    	表示对象:
    		person:
    			name: xxx
    			age: xxx
    			address: xxxx
    	表示集合:
    		list:
    			- ele1
    			- ele2
    			- ele3
    		list: [ele1, ele2, ele3]

在这里插入图片描述

#Redis
  redis:
    host: 192.168.25.153
    port: 6379
#elasticsearch
  data:
    elasticsearch:
      cluster-name: elasticsearch
      cluster-nodes: 127.0.0.1:9300
page:
  rows: 50
person:
  name: 张三
  age: 18
  sex: 女
  address: 杭州
#  myAddress:
#    - "北京昌平"
#    - "北京顺义"
#    - "上海浦东"
#    - "新疆和田"
  myAddress: ["北京昌平","北京顺义","上海浦东","新疆和田"]

springboot创建工程的步骤:

在这里插入图片描述

1)创建springboot工程,要求必须是maven工程。必须继承spring-boot-stater-parent工程。
2)编写controller,实现业务逻辑
3)编写启动类,添加一个main方法。其上需要添加一个注解@SpringBootApplication
4)启动main方法

3、功能点梳理

1)springboot工程必须是maven工程
	2)工程必须继承spring-boot-stater-parent工程。
	3)编写Controller和启动类。
	3)@SpringBootApplication,其中包含@ComponentScan注解,包扫描器。
		扫描引导类下所有子包中的类。注意:要求启动类必须是顶层包中

在这里插入图片描述
3、JPA持久层整合
使用方法:
1)添加起步依赖。

<!--web项目的起步依赖-->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
        <!-- springBoot JPA的起步依赖 -->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-data-jpa</artifactId>
        </dependency>

2)创建一个配置文件的数据源参数

在这里插入图片描述
3)编写Entity、dao
//springDataJpa的相关实体类所需注解

@Entity
@Table(name="user")
public class User {
    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    private int id;
    private int age;
    private String username;
    private String password;
    private String email;
    private String sex;

dao层接口,继承jpa

public interface UserDao extends JpaRepository<User,Integer> {
}

4)controller调用自己写

4、springboot中的模板页面展示

使用方法:
1)添加起步依赖

<!--3.2.1添加freemarker的依赖-->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-freemarker</artifactId>
        </dependency>

2)创建模板文件,必须,保存位置resources/templates目录下
文件的扩展名必须是ftl
在这里插入图片描述

<html>
<head>
    <title>hello spring boot</title>
</head>
<body>
    <table border="1">
        <thead>
            <tr>
                <th>id</th>
                <th>用户名</th>
                <th>密码</th>
                <th>姓名</th>
            </tr>
        </thead>
        <tbody>
            <#list userList as user>
            <tr>
                <td>${user.id}</td>
                <td>${user.username}</td>
                <td>${user.password}</td>
                <td>${user.name}</td>
            </tr>
            </#list>
        </tbody>
    </table>
    <img src="/images/2.jpg">
</body>
</html>

3)编写Controller把查询结果传递给模板。
在这里插入图片描述
5、静态资源的处理
resources/static目录
静态资源的根目录。
在这里插入图片描述

四、常见框架整合

1、mybatis
使用方法:
1)添加mybatis的起步依赖。

<!--mybatis起步依赖-->
<dependency>
    <groupId>org.mybatis.spring.boot</groupId>
    <artifactId>mybatis-spring-boot-starter</artifactId>
    <version>1.1.1</version>
</dependency>
2)在配置文件中配置数据源信息。
#yml的配置语法格式
#DB Configuration  数据源配置:
spring:
  datasource:
    driverClassName: com.mysql.jdbc.Driver
    url: jdbc:mysql://127.0.0.1:3306/vuedb?useUnicode=true&characterEncoding=utf8
    username: root
    password: 123

#JPA Configuration:
#设置数据库类型为mysql
  jpa:
    database: MySQL
#后台是否显示sql语句
    show-sql: true
    generate-ddl: true
3)编写pojo类、mapper接口、mapper映射文件。
public class MUser {
        private int id;
        private int age;
        private String username;
        private String password;
        private String email;
        private String sex;
 }

在这里插入图片描述
4)手动配置mybatis的包扫描器。
在启动类上添加@MapperScan注解
在这里插入图片描述
5)使用
在这里插入图片描述
使用mybatis出现如下错误:
org.apache.ibatis.binding.BindingException: Invalid bound statement (not found): com.itheima.mappper.UserMapper.getUserList
原因:接口中的方法没有找到对应的sql语句
解决方案:
1、把映射文件放到resources目录下,对应的创建目录结构。

可以配置mybatis的一些参数:
	#spring集成Mybatis环境
	#pojo别名扫描包
	mybatis.type-aliases-package=com.itheima.domain
	#加载Mybatis映射文件
	mybatis.mapper-locations=classpath:mapper/*Mapper.xml

2、可以修改pom.xml文件,让maven把src/main/java目录下的配置文件也复制到目标目录。(推荐)
在这里插入图片描述

<!--这段,意识是把mapper包中的xml映射文件,也一起放入编译后的文件中。-->
    <!--没有这段,xml文件是不会被编译的-->
    <build>
        <resources>
            <resource>
                <directory>src/main/java</directory>
                <includes>
                    <include>**/*.properties</include>
                    <include>**/*.xml</include>
                </includes>
                <filtering>false</filtering>
            </resource>
            <resource>
                <directory>src/main/resources</directory>
                <includes>
                    <include>**/*.*</include>
                </includes>
                <filtering>false</filtering>
            </resource>
        </resources>
    </build>
<!--————————————结束————————————————-->

实体类属性注解封装
在这里插入图片描述
在这里插入图片描述

/***
 * @ConfigurationProperties:告诉springboot将本类中的所有属性,和配置文件相关的配置进行绑定;
 *   prefix = "person" :配置文件中那个下面的所有属性进行类型注入的映射
 * @Component:把这个类配置进容器中,才能使用绑定注解的功能
 * 另外还需注意:要导入封装属性的jar坐标。
 */

@Component
@ConfigurationProperties(prefix = "person")
public class Person {
    //人的属性
    private String lastName;
    private int  age;
    private boolean boss;
    private Date birth;
    //账户和公司属性
    private Map<String,Object> maps;
    private List<Object> lists;
    //宠物属性
    private Dog dog;

pom.xml文件的封装属性的映射依赖

 <dependency>
    <!--封装属性的映射jar-->
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-configuration-processor</artifactId>
    <optional>true</optional>
  </dependency>

如果说,我们只是在某个业务逻辑中需要获取一下配置文件中的某项值,使用@Value;

如果说,我们专门编写了一个javaBean来和配置文件进行映射,我们就直接使用@ConfigurationProperties;

@PropertySource&@ImportResource&@Bean 三个注解

@PropertySource:加载指定的配置文件;写法:@PropertySource(value = {"classpath:person.properties"})

@ImportResource:导入Spring的配置文件,让配置文件里面的内容生效;
Spring Boot里面没有Spring的配置文件,我们自己编写的配置文件,也不能自动识别;
想让Spring的配置文件生效,加载进来;@ImportResource标注在一个配置类上

 @ImportResource(locations = {"classpath:beans.xml"})

@Bean给容器中添加组件

在这里插入图片描述

部署打包成jar

1.打包部署
是java工程打包之后会得到jar包。
打包方式:
1)需要在pom文件中添加一个插件
在这里插入图片描述

<build>
	<plugins>
		<plugin>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-maven-plugin</artifactId>
		</plugin>
	</plugins>
</build>

2)可以使用maven的命令打包package

清除原有编译的代码,再打包,打包需要跳过测试代码
			clean package -DskipTests 

在这里插入图片描述
3)得到部署好的jar包,并且启动,测试
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

热部署:

注意:IDEA进行SpringBoot热部署失败原因

出现这种情况,并不是热部署配置问题,其根本原因是因为Intellij IEDA默认情况下不会自动编译,需要对IDEA进行自动编译的设置,如下:
在这里插入图片描述
然后 Shift+Ctrl+Alt+/,选择Registry
在这里插入图片描述
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值