springboot入门学习

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为属性赋值

  1. @Value方式
  2. SpringBoot批量为属性赋值
  3. 指定配置文件为属性赋值
    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. 常用注解
  1. @Data注解:在JavaBean或类JavaBean中使用,这个注解包含范围最广,它包含getter、setter、NoArgsConstructor注解,即当使用当前注解时,会自动生成包含的所有方法;
  2. @getter注解:在JavaBean或类JavaBean中使用,使用此注解会生成对应的getter方法;
  3. @setter注解:在JavaBean或类JavaBean中使用,使用此注解会生成对应的setter方法;
  4. @NoArgsConstructor注解:在JavaBean或类JavaBean中使用,使用此注解会生成对应的无参构造方法;
  5. @AllArgsConstructor注解:在JavaBean或类JavaBean中使用,使用此注解会生成对应的有参构造方法;
  6. @ToString注解:在JavaBean或类JavaBean中使用,使用此注解会自动重写对应的toStirng方法;
  7. @EqualsAndHashCode注解:在JavaBean或类JavaBean中使用,使用此注解会自动重写对应的equals方法和hashCode方法;
  8. @Slf4j:在需要打印日志的类中使用,当项目中使用了slf4j打印日志框架时使用该注解,会简化日志的打印流程,只需调用info方法即可;
  9. @Log4j:在需要打印日志的类中使用,当项目中使用了log4j打印日志框架时使用该注解,会简化日志的打印流程,只需调用info方法即可;
5.2 注解参数的处理方法
  1. exclude=" ":排除所对应的元素
  2. exclude={ " “,” "}:排除对多个所对应的元素
  3. of=" " :只包含所对应的元素
  4. of={" “,” "}:只包含所对应的元素
  5. 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中添加指定项目资源路径就可以了
idea设置

4.测试步骤

  1. 创建pojo
  2. 创建mapper方法
  3. 创建service和serviceImpl的方法
  4. 创建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/
在这里插入图片描述

  • 作用:异步请求,局部刷新
  • 原理图:

    ajax原理图

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种:

    1. js格式 {key:value}

    2. 字符串格式 表单序列化格式后

      $("form").serialize() //例:id=1&name=tom&xxx=xxx

评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值