SpringBoot

一、简单介绍

特点:
1、直接嵌入应用服务器,如tomacat、jetty等,不需要去部署war包
2、提供固定的启动器依赖去简化组件配置
3、自动配置spring和其他有需要的第三方依赖

二、快速入门

1、新建maven工程
2、添加依赖
1)添加父工程坐标

<parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.1.4.RELEASE</version>
</parent>
	2)添加web启动器
	为了让spring boot帮我们完成各种自动配置,
	要引入spring boot提供的自动配置依赖,称为启动器。
	完整pom文件如:
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" 
		 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"         	
		 xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">    
		 <modelVersion>4.0.0</modelVersion>
   
   		 <groupId>com.leyou.demo</groupId>    	
   		 <artifactId>springboot-demo</artifactId>    
   		 <version>1.0-SNAPSHOT</version>
    	 <properties>
    	 		<java.version>1.8</java.version> 
    	 </properties>
    	 <parent> 
    	 		<groupId>org.springframework.boot</groupId>        	
    	 		<artifactId>spring-boot-starter-parent</artifactId>        
    	 		<version>2.1.5.RELEASE</version>  
     	 </parent>
    	 <dependencies>   
         		<dependency>            	
         	<groupId>org.springframework.boot</groupId>            
         	<artifactId>spring-boot-starter-web</artifactId>        
         		</dependency>  
          </dependencies>
</project>
3)启动类
@SpringBootApplication
 public class Application {    
 		public static void main(String[] args) {        	
 				SpringApplication.run(Application.class, args); 
 		}
  }
4)接下来就可以开发springmvc项目,编写controller层
@RestController 
public class HelloController {
	@GetMapping("hello")    
	public String hello(){        
		return "hello, spring boot!";    
	} 
}

三、java配置应用

了解@SpringBootAplication:
包含了
@SpringBootConfiguration 声明当前类是配置类
@EnableAutoConfiguration 引入依赖,对应默认配置生效
@ComponentScan 制定要扫描的包
1)启动器
所以,我们如果不想配置,只需要引入依赖即可,而依赖版本我们也不用操心,因为只要引入了SpringBoot提供的 stater(启动器),就会自动管理依赖及版本了。 因此,玩SpringBoot的第一件事情,就是找启动器,SpringBoot提供了大量的默认启动器
2)全局配置
另外,SpringBoot的默认配置,都会读取默认属性,而这些属性可以通过自定义 application.properties 文件来 进行覆盖。这样虽然使用的还是默认配置,但是配置中的值改成了我们自定义的。
因此,玩SpringBoot的第二件事情,就是通过 application.properties 来覆盖默认属性值,形成自定义配置。
如:

jdbc:  
 driverClassName: com.mysql.jdbc.Driver
 url:jdbc:mysql://127.0.0.1:3306/springboot_test   
 username: root  password: root
server: 
 port: 80

如果properties和yml文件都存在,如果有重叠属性,默认以Properties优先。

四、配置拦截器

通过实现 WebMvcConfigurer 并添加 @Configuration 注解来实现自定义部分SpringMvc配置。

  1. 创建拦截器,内容 如下:
package com.soft.interceptor;

import lombok.extern.slf4j.Slf4j; 
import org.springframework.web.servlet.HandlerInterceptor; import org.springframework.web.servlet.ModelAndView;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
 
@Slf4j 
public class MyInterceptor implements HandlerInterceptor {
    @Override   
     public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {        
     		log.debug("这是MyInterceptor拦截器的preHandle方法");        
     		return true;   
      }
    @Override   
     public void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler, ModelAndView modelAndView) throws Exception {  
           log.debug("这是MyInterceptor拦截器的postHandle方法");    
     }
}

2、定义配置类,用于注册拦截器

package com.soft.config;

import com.soft.interceptor.MyInterceptor;
import org.springframework.context.annotation.Bean; 
import org.springframework.context.annotation.Configuration; import org.springframework.web.servlet.config.annotation.InterceptorRegistry; 
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;

@Configuration 
public class MvcConfig implements WebMvcConfigurer {
    /**  将拦截器注册到spring ioc容器     
    	* @return myInterceptor     
    */    
    	@Bean    
    	public MyInterceptor myInterceptor(){        
    		return new MyInterceptor();    
    	}
    /**     
    * 重写该方法;往拦截器链添加自定义拦截器     
    *  @param registry 拦截器链     
    */    
   		 @Override    
    	public void addInterceptors(InterceptorRegistry registry) {        
     //通过registry添加myInterceptor拦截器,并设置拦截器路径为/*        				
     		registry.addInterceptor(myInterceptor()).addPathPatterns("/*");    		
     	} 
}

五、整合jdbc和事务

添加依赖

<dependency>    	
	<groupId>org.springframework.boot</groupId>    
	<artifactId>spring-boot-starter-jdbc</artifactId> 
</dependency>
同时,添加数据库驱动,Springoot不知道我们用的是什么数据库

```java
<dependency>    
	<groupId>mysql</groupId>    
	<artifactId>mysql-connector-java</artifactId>   
	 <version>5.1.46</version>
 </dependency>

事务,SpringBoot中通过注解来控制。就是@Transactional 使用的时候设置在对应的类或方法上 即可。
整合连接池

spring:  
 datasource:    
 driver-class-name: com.mysql.jdbc.Driver    
 url: jdbc:mysql://localhost:3306/springboot_test      
 username: root    
 password: roo

六、整合mybatis

添加依赖

<!--mybatis --> 
<dependency>    
	<groupId>org.mybatis.spring.boot</groupId>    
	<artifactId>mybatis-spring-boot-starter</artifactId>    
	<version>2.0.1</version> 
</dependency>
配置application.yml

#mybatis配置 

```yaml
mybatis: 
 #实体类别名包路径 
 type-aliases-package: com.itheima.pojo 
 # 映射文件路径 
 # mapper-locations: classpath:mappers/*.xml 
 configuration: 
 # 控制台输出执行sql 
 log-impl:org.apache.ibatis.logging.stdout.StdOutImpl

```java
配置mapper扫描
	给每个mapper接口添加@Mapper注解,或在启动类上添加扫描包注解(推荐)
@SpringBootApplication @MapperScan("com.itheima.mapper") 
public class Application {    
	public static void main(String[] args) {        
	// 启动代码        						
	SpringApplication.run(Application.class, args);   
 	} 
 }

通用mapper
添加依赖

<!-- 通用mapper --> 
<dependency>    
	<groupId>tk.mybatis</groupId>    
	<artifactId>mapper-spring-boot-starter</artifactId>    	
	<version>2.1.5</version> 
</dependency>

注意:1、一旦引入了通用Mapper的启动器,会覆盖Mybatis官方启动器的功能,因此需要移除对官方Mybatis启动器 的依赖。
2、把启动类上的@MapperScan注解修改为通用mapper中自带的:
3、在User实体类上加JPA注解

七、整合redis

添加依赖

 <dependency>            	
 	<groupId>org.springframework.boot</groupId>            	
 	<artifactId>spring-boot-starter-data-redis</artifactId>        
 </dependency>

配置application.yml

spring:  
 redis:    
 host: localhost    
 port: 6379
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值