springboot controller访问不到_SpringBoot 详解 !!!
Spring Boot 一个简化spring开发的框架,特点: 微服务自动配置起步依赖命令行界面Actuator22. 构建SpringBoot项目需要什么需要依赖parent 配置启动器编写Spring Boot启动类SpringBoot整合 Servlet方式一:通过注解方式整合servlet/***SpringBoot 整合 Servlet 方式一 **<servlet> * &
Spring Boot
一个简化spring开发的框架,
特点:
微服务
自动配置
起步依赖
命令行界面
Actuator2
2. 构建SpringBoot项目需要什么
需要依赖parent
配置启动器
编写Spring Boot启动类
SpringBoot整合 Servlet
方式一:通过注解方式整合servlet
/**
*SpringBoot 整合 Servlet 方式一
*
*<servlet>
* <servlet-name>FirstServlet</servlet-name>
* <servlet-class>com.bjsxt.servlet.FirstServlet</servlet-class>
*</servlet>
*
*<servlet-mapping>
* <servlet-name>FirstServlet</servlet-name>
* <url-pattern>/first</url-pattern>
*</servlet-mapping>
*
*/
方式二: 通过方法整合servlet
注意:编写启动类
启动器存放的位置,启动器可以和controller位于同一个包下,或者位于controller的上一级包中,但是不能放到controller的平级以及子包下,这样才能对controller 进行管理 ,平级或子级都不能管理到
整合Filter 整合Listener 方式差不多
SpringBoot 访问静态资源
两种方式:一种在classpath目录下的static目录下
还有一种 src/main/webapp下(Context上下文)
当两个目录下的图片名字相同时 ,优先访问webapp下的资源
SpringBoot 上传文件 会默认扫描classpath 目录下的application.properties文件
Servlet类
Spring Boot整合 Freemarker
1. 添加坐标
格式
Spring Boor整合 Thymeleaf
1. 导入坐标依赖
<!--thymeleaf启动器的坐标 -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-thymeleaf</artifactId>
</dependency>
2. 文件扩展名(模板文件夹还是 templates)
.html
3. 语法和格式
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
<title>Insert title here</title>
</head>
<body>
<span th:text="Hello"></span>
<hr/>
<span th:text="${msg}"></span>
</body>
</html>
Thymeleaf 语法讲解
th:text : 在页面中输出值
th.value:可以将一个值放入到input标签的value中
Thymeleaf 内置对象
语法:
1,调用内置对象一定要用#
2, 大部分的内置对象都以s结尾
字符串处理
${#strings.isEmpty(key)} 判断字符串是否为空
${#strings.contains(msg,’T’ )} 判断字符串是否包含指定子串,包含返回true,不包含返回false
${#strings.startsWith(msg,’a’)} 字符串是否以子串开头,是 则返回true,否则返回false
${#strings.endsWith(msg,’a’)} 字符串是否以子串结尾,是则返回true,否则返回false
${#strings.length(msg)} 返回字符串的长度
${#strings.indexof(msg,’h’) } 返回指定字串的下标,如果没有返回-1
${#strings.substring(msg,12)} 截取字串
${#strings.toUpperCase(msg)}
${#strings.toLowerCase(msg)} 字符串转大小写
日期处理
${#dates.format(key)} 格式化日期 默认的以浏览器默认语言为格式化标准
${#dates.format(key,’yyyy/MM/dd’)} 按照自定义的格式做日期转换
${#dates.year(key)} 取年
${#dates.month(key)} 取月
${#date.day(key)} 取日
条件判断
th:if :if判断
<span th:if=”${sex} == ‘男’”>
性别: 男
</span>
<span th:if=”${sex} == ‘女’”>
性别:女
</span>
Th:swith : swith 判断
<div th:swith=”${id}”>
<span th:case=”1”>ID 为1</span>
<span th:case=”2”>ID 为2</span>
</div>
Th : each : 遍历 相当于 foreach
Th:each 也是一个状态变量
SpringBoot 整合SpringMVC + MyBatis
添加依赖
<!-- SpringBoot启动器 -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<!-- Thymeleaf启动器 -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-thymeleaf</artifactId>
</dependency>
<!-- Mybatis启动器 -->
<!-- https://mvnrepository.com/artifact/org.mybatis.spring.boot/mybatis-spring-boot-starter -->
<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
<version>2.0.0</version>
</dependency>
<!-- mysql驱动 -->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
</dependency>
<!--数据源 -->
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid</artifactId>
<version>1.1.10</version>
</dependency>
编写配置文件 application.properties
spring.datasource.driverClassName=com.mysql.cj.jdbc.Driver
spring.datasource.url=jdbc:mysql://localhost:3306/ssm?serverTimezone=CTT&useUnicode=true&characterEncoding=utf-8&allowMultiQueries=true //参考JDBC参数文件https://blog.csdn.net/hcmony/article/details/80332493
spring.datasource.username=root
spring.datasource.password=1234
spring.datasource.type=com.alibaba.druid.pool.DruidDataSource
mybatis.type-aliases-package=com.bjsxt.pojo
配置startBoot :启动springBoot 的文件的注意:
1. 位置注意:
这样才能操作其他数据文件
@MapperScan
用户扫描MyBatis的mapper接口
指定要变成实现类的接口所在的包,然后包下面的所有接口在编译之后都会生成相应的实现类
添加@MapperScan(“com.winter.dao”)注解以后,com.winter.dao包下面的接口类,在编译之后都会生成相应的实现类
SpringBoot数据校检
1. 在实体类中添加校检规则
2. 在Controller中开启校检
3. 在页面中获取提示信息
注意:
参数名称的更改通过 @ModelAttribute(“参数名”)
SpringBoot中异常处理方式 五种
1. 自定义错误页面
SpringBoot,默认的处理异常的机制:SpringBoot 默认的已经提供了一套处理异常的机制
一旦程序中出现异常SpringBoot 会像/error的url发送请求.在SpringBoot中提供了一个叫BasicExceptionController 来处理/error 请求,然后跳转到默认显示异常的页面来显示异常信息
如果我们需要将所有的异常统一跳转到自定义的错误页面,需要在src/main/resource/templates目录下创建error.html页面:注意: 名称必须叫error
2. 使用@ExceptionHandle 注解处理异常
缺点 : 只能捕获当前controller下产生的异常 ,其他controller捕获不到
3. @ControllerAdvice + @ExceptionHandler 注解处理异常 (全局异常捕获)
4. 配置SimpleMappingExceptionResolver 处理异常
5. 自定义HandlerExceptionResolver
SpringBoot 整合 Junit 做单元测试
SpringBoot的热部署分为两种
1. 使用SpringLoader进行热部署
添加maven插件 使用 SpringLoader
<!-- springloader 插件 -->
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<dependencies>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>springloaded</artifactId>
<version>1.2.5.RELEASE</version>
</dependency>
</dependencies>
</plugin>
</plugins>
</build>
使用maven的命令启动
Springloader缺陷 :
1. java代码可以做部署处理,页面代码就不行了
2. SpringLoader热部署程序是在系统后台以进程的形式来运行 ,需要手动关闭该进程
第二种,在项目中直接使用jar包的方式
启动方式
启动命令:
-javaagent:.libspringloaded-1.2.5.RELEASE.jar -noverify
使用DevTools 实现伪热部署
SrpingLoader 和DevTools 的区别
SpringLoader : SpringLoader 在部署项目时使用的是热部署的方式
DevTools : DevTools 在部署项目时使用的是重新部署的方式 (前端页面也可以部署)
使用方式简单
只需要添加DevTools 的坐标
它就会在你修改代码时自动重新部署
魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。
更多推荐



所有评论(0)