Spring Boot旨在通过最少的Spring前期配置使您尽快启动并运行。
一、spring注解
- 使用 @Controller / @RestController 注解标注一个控制器,表明这个类是作为控制器的角色而存在的
- 使用 @Service 注解标注一个业务层类
- 使用 @Repository 注解标注一个持久层 mapper 接口
- 使用 @Component 注解标注其他组件
- 使用 @Configuration 注解标注配置类
二、Springboot主启动类注解说明
@SpringBootApplication 相当于 @Configuration,@EnableAutoConfiguration 和@ComponentScan,主需要SpringbootApplication一个注解就可以了
- @Configuration:标注一个类为配置类
- @EnableAutoConfiguration :当springboot程序启动时会自动的加载jar包中的配置
- @ComponentScan :自动收集所有的 Spring 组件(写代码必须在主启动类的子包中编辑)
三、Spring Boot + SSM快速搭建
1. 使用idea创建springboot项目
2. 环境切换
一般而言,开发环境和生产环境是不用的。如果开发时或者在测试时,都会将环境进行修改,这样的操作也比较繁琐,就会使用到环境切换:_
配置YML文件
#注意事项:
#1.配置内容必须类似
#2.环境可以有多个,使用---分割
#3.设定默认模式
spring:
profiles:
active: #profiles属性值
使用: 修改默认配制名称,即可实现环境的随意切换
3. SpringBoot为属性赋值
- @Value方式
- SpringBoot批量为属性赋值
- 指定配置文件为属性赋值
3.1. 添加属性注入依赖
3.2. 在使用的类上增加注解
<!--添加属性注入依赖 -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-configuration-processor</artifactId>
<optional>true</optional>
</dependency>
@PropertySource(value= {"classpath:/properties/xxx.properties"})
@ConfigurationProperties(prefix="xxx")
@Component //交给spring容器管理
4. 热部署
可以实现实时的更新
<!--支持热部署 -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-devtools</artifactId>
</dependency>
5. LomBok
简化POJO编辑方式,自动生成set/get/构造方法等
<!--引入插件lombok 自动的set/get/构造方法插件 -->
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
</dependency>
5.1. 常用注解
- @Data注解:在JavaBean或类JavaBean中使用,这个注解包含范围最广,它包含getter、setter、NoArgsConstructor注解,即当使用当前注解时,会自动生成包含的所有方法;
- @getter注解:在JavaBean或类JavaBean中使用,使用此注解会生成对应的getter方法;
- @setter注解:在JavaBean或类JavaBean中使用,使用此注解会生成对应的setter方法;
- @NoArgsConstructor注解:在JavaBean或类JavaBean中使用,使用此注解会生成对应的无参构造方法;
- @AllArgsConstructor注解:在JavaBean或类JavaBean中使用,使用此注解会生成对应的有参构造方法;
- @ToString注解:在JavaBean或类JavaBean中使用,使用此注解会自动重写对应的toStirng方法;
- @EqualsAndHashCode注解:在JavaBean或类JavaBean中使用,使用此注解会自动重写对应的equals方法和hashCode方法;
- @Slf4j:在需要打印日志的类中使用,当项目中使用了slf4j打印日志框架时使用该注解,会简化日志的打印流程,只需调用info方法即可;
- @Log4j:在需要打印日志的类中使用,当项目中使用了log4j打印日志框架时使用该注解,会简化日志的打印流程,只需调用info方法即可;
5.2 注解参数的处理方法
- exclude=" ":排除所对应的元素
- exclude={ " “,” "}:排除对多个所对应的元素
- of=" " :只包含所对应的元素
- of={" “,” "}:只包含所对应的元素
- Accessors(chain=true) :链式加载
6. SpringBoot整合Mybatis
1. 添加依赖
<!--引入数据库驱动 -->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<scope>runtime</scope>
</dependency>
<!--引入druid数据源 -->
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid</artifactId>
<version>1.1.12</version>
</dependency>
<!--spring整合mybatis -->
<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
<version>1.3.2</version>
</dependency>
2. 导入数据库
3. 编辑YML配置文件
server:
port: 80
servlet:
context-path: /
spring:
datasource:
#引入druid数据源
type: com.alibaba.druid.pool.DruidDataSource
driver-class-name: com.mysql.cj.jdbc.Driver
url: jdbc:mysql:///jldb?serverTimezone=GMT%2B8&useUnicode=true&characterEncoding=utf8&autoReconnect=true&allowMultiQueries=true
username: root
password: root
mybatis:
#定义别名包 resultType的映射可以省略包路径
type-aliases-package: com.jl.pojo
#加载mapper的映射文件
mapper-locations: classpath:/mybatis/mappers/*.xml
#开启驼峰映射
#使用说明: 1.必须按照驼峰规则的规定 去掉_线,并且之后字母"大写"
# 2.如果开启驼峰规则,必须按照要求 属性user_id 字段user_id
configuration:
map-underscore-to-camel-case: true
4. 在启动类上加注解
@MapperScan("com.jl.mapper") //动态加载mapper接口
7. Mybatis-plus
官网教程很详细
https://mp.baomidou.com/本人学习笔记
https://blog.csdn.net/qq_42495388/article/details/102783801
引入jar包
<!--spring整合mybatis-plus -->
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-boot-starter</artifactId>
<version>3.0.6</version>
</dependency>
四、springboot整合jsp
1.添加依赖
<!--springBoot整合JSP添加依赖 -->
<!--servlet依赖 -->
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
</dependency>
<!--jstl依赖 -->
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>jstl</artifactId>
</dependency>
<!--添加tomcat依赖模块.-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-tomcat</artifactId>
<scope>provided</scope>
</dependency>
<!--使jsp页面生效 不能缺少-->
<dependency>
<groupId>org.apache.tomcat.embed</groupId>
<artifactId>tomcat-embed-jasper</artifactId>
</dependency>
2.编辑yml文件
修改配置文件中的Jsp文件访问路径(视图解析)
#引入SpringMVC配置
spring: #不得重复
mvc: #引入mvn配置
view:
prefix: /WEB-INF/ # /默认代表根目录 src/main/webapp
suffix: .jsp
3.创建jsp文件
配置完成后在webapp/WEB-INF/jsp文件夹下放jsp文件(必须有webapp/WEB-INF这个包,否则访问不到)
解决idea无法创建jsp文件
1. 项目结构目录
2. 在Project Structrue → Modules → Web → Web Resource Directories中添加指定项目资源路径就可以了
4.测试步骤
- 创建pojo
- 创建mapper方法
- 创建service和serviceImpl的方法
- 创建controller方法
异常
Idea整合Maven中常见异常
1. jar包找不到:清空本地仓库重新下载
2. maven的xml设置mirrorof的坑:* 和 central
/* maven:阿里云仓库配置*/
<mirror>
<id>aliyun</id>
<name>aliyun Maven</name>
<mirrorOf>*</mirrorOf>
<url>http://maven.aliyun.com/nexus/content/groups/public/</url>
</mirror>
配置成 * 就代表我们通过访问阿里云的maven仓库从而访问网路上所有的远程仓库,如果配置成central,就代表我们通过阿里云访问central仓库,及http://central.maven.org/maven2,如果配置成repo1,就代表通过阿里云访问http://repo1.maven.org/maven2,阿里云和这些远程仓库之间必须可以镜像,存在一定的镜像关系。
配置文件
pom.xml
<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.jt</groupId>
<artifactId>jt-springboot-mybatis</artifactId>
<version>0.0.1-SNAPSHOT</version>
<!--负责封装springboot程序中的全部公共jar包 -->
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.1.9.RELEASE</version>
<relativePath /> <!-- lookup parent from repository -->
</parent>
<!--jar包依赖项 -->
<dependencies>
<!--坐标 -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
<!--添加属性注入依赖 -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-configuration-processor</artifactId>
<optional>true</optional>
</dependency>
<!--添加热部署插件 -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-devtools</artifactId>
</dependency>
<!--引入插件lombok 自动的set/get/构造方法插件 -->
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
</dependency>
<!--引入数据库驱动 -->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<scope>runtime</scope>
</dependency>
<!--引入druid数据源 -->
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid</artifactId>
<version>1.1.12</version>
</dependency>
<!--spring整合mybatis-plus -->
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-boot-starter</artifactId>
<version>3.0.6</version>
</dependency>
</dependencies>
<!--maven的操作方式 -->
<build>
<!--插件绑定 -->
<plugins>
<!--如果没有插件则main方法无法执行 负责maven项目的其他maven操作 打包/clean/生成源码 -->
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
</project>
application.yml
server:
port: 8090
servlet:
context-path: /
spring:
datasource:
#引入druid数据源
type: com.alibaba.druid.pool.DruidDataSource
driver-class-name: com.mysql.cj.jdbc.Driver
url: jdbc:mysql://127.0.0.1:3306/jtdb?serverTimezone=GMT%2B8&useUnicode=true&characterEncoding=utf8&autoReconnect=true&allowMultiQueries=true
username: root
password: root
mybatis-plus:
#定义别名包 resultType的映射可以省略包路径
type-aliases-package: com.jt.pojo
#加载mapper的映射文件
mapper-locations: classpath:/mybatis/mappers/*.xml
#开启驼峰映射
#使用说明: 1.必须按照驼峰规则的规定 去掉_线,并且之后字母"大写"
# 2.如果开启驼峰规则,必须按照要求 属性user_id 字段user_id
configuration:
map-underscore-to-camel-case: true
#配置数据库日志
logging:
level:
com.jt.mapper: debug
随手笔记
1. model操作的是request域
2. 四大作用域: page , request , session , application
3. jsp使用ajax
- 以后写一篇ajax用法的总结
学习前端jQuery和ajax技术网站:http://jquery.cuishifeng.cn/
- 作用:异步请求,局部刷新
- 原理图:
jQuery下载:https://jquery.com/download/
- 将jQuery-3.4.1.js 导入到项目的 webapp→js目录中
- 在jsp中的
<head>
中引入jQuery
<script type="text/javascript" src="/js/jquery-3.4.1.js"></script>
- 让页面加载完成之后开始运行js
$(function(){
//ajax请求写在这里面
})
-
ajax使用方式
1) ajax基础版本($.ajax()提交AJAX请求)
$.ajax({ type: "get",//请求类型 url: " ", //提交地址 data: "{xx:xx}", //提交的参数 dataType: "json", //返回值类型 async: false, //设定同步异步 success: function(result){ alert("回调函数成功时执行!!!"); }, error: function(result){ alert("当ajax请求报异常时执行"); } });
2) 使用get方式提交ajax
$.get
是$.ajax
的简化版,专门用于发送GET请求$.get( page, //page 访问的页面(必须得) {"name":value}, //提交的数据 function(result){ //响应函数 $("#checkResult").html(result); } );
3) 使用post方式提交ajax
$.post
是$.ajax
的简化版,专门用于发送POST请求$.post( page, {"name":value}, function(result){ $("#checkResult").html(result); } );
4) 最简单的调用ajax的方式:
load
$("#id").load(page,[data]); //id: 用于显示AJAX服务端文本的元素Id
5) data格式常见2种:
-
js格式
{key:value}
-
字符串格式 表单序列化格式后
$("form").serialize()
//例:id=1&name=tom&xxx=xxx
-