java
文章平均质量分 60
java
@Autowire
这个作者很懒,什么都没留下…
展开
-
Java MultipartFile 上传文件/上传图片
1判断允许上传文件的 文件后缀/图片后缀/相片后缀 和 其它工具类@componentpublic class FileUtil{ public static final List<String> IMAGE_EXTENSIONS = Arrays.asList(".jpg" , ".ipeg" , ".png");}----------------------------------public class CommonUtil { public static String ge原创 2021-06-03 10:10:21 · 1132 阅读 · 0 评论 -
SpringBoot(1)——HelloWorld程序
1 HelloWorld1.1 从IEDA中创建点击next,选择一下操作选择项目的安装路径即可1.2 程序编写1 创建如图所示的目录结构2 HelloController.javapackage com.zs.helloword.controller;import org.springframework.web.bind.annotation.RequestMapping;import org.springframework.web.bind.annotation.RestCo原创 2021-01-25 12:23:31 · 110 阅读 · 0 评论 -
spirngMVC(7)——拦截器、文件上传下载
1拦截器过滤器与拦截器的区别:拦截器是AOP思想的具体应用。过滤器servlet规范中的一部分,任何java web工程都可以使用在url-pattern中配置了/*之后,可以对所有要访问的资源进行拦截拦截器拦截器是SpringMVC框架自己的,只有使用了SpringMVC框架的工程才能使用拦截器只会拦截访问的控制器方法, 如果访问的是jsp/html/css/image/js是不会进行拦截的1自定义拦截器那如何实现拦截器呢?想要自定义拦截器,必须实现 HandlerIntercepto原创 2021-01-25 12:14:45 · 97 阅读 · 0 评论 -
spirngMVC(5)——JSON交互处理
1JSON(字符串)JSON(JavaScript Object Notation, JS 对象标记) 是一种轻量级的数据交换格式,目前使用特别广泛。采用完全独立于编程语言的文本格式来存储和表示数据。简洁和清晰的层次结构使得 JSON 成为理想的数据交换语言。易于人阅读和编写,同时也易于机器解析和生成,并有效地提升网络传输效率。2Controller返回JSON数据【Jackson】1我们这里使用Jackson,使用它需要导入它的jar包 <!-- https://mvn原创 2021-01-25 12:15:18 · 146 阅读 · 0 评论 -
spirngMVC(4)——结果跳转方式、数据处理、数据显示到前端、乱码问题
1结果跳转方式1ModelAndView设置ModelAndView对象 , 根据view的名称和视图解析器跳到指定的页面页面 : {视图解析器前缀} + viewName +{视图解析器后缀} @GetMapping("/add/{a}/{b}") public String add(@PathVariable String a , @PathVariable int b, Model model) { String res = a + b; mode原创 2021-01-25 12:15:27 · 112 阅读 · 0 评论 -
spirngMVC(3)——控制器Controller、RequestMapping、RestFul 风格
1控制器Controller控制器复杂提供访问应用程序的行为,通常通过接口定义或注解定义两种方法实现。控制器负责解析用户的请求并将其转换为一个模型。在Spring MVC中一个控制器类可以包含多个方法在Spring MVC中,对于Controller的配置方式有很多种1实现Controller接口public interface Controller { @Nullable ModelAndView handleRequest(HttpServletRequest request, Http原创 2021-01-25 12:15:35 · 145 阅读 · 0 评论 -
spirngMVC(2)——HelloSpringMVC
1 HelloSpringMVC1.1配置版程序见springmvc(1)1.2注解版1新建一个Moudle:spring-annotation 添加web支持2由于Maven可能存在资源过滤的问题,我们将配置完善<!--静态资源过滤--> <build> <resources> <resource> <directory>src/main/java</原创 2021-01-25 12:15:43 · 72 阅读 · 0 评论 -
01_SpringMVC案例引入讲解
1回顾MVCMVC是模型(Model(mapper service))、视图(View(jsp))、控制器(Controller(servlet))的简写,是一种软件设计规范是将业务逻辑、数据、显示分离的方法来组织代码1模型数据模型,提供要展示的数据,因此包含数据和行为,模型提供了模型数据查询和模型数据的状态更新等功能,包括数据和业务2视图负责进行模型的展示,一般就是我们见到的用户界面,客户想看到的东西3控制器接收用户请求,委托给模型进行处理(状态改变),处理完毕后把返回的模型数据返回给视图原创 2021-01-25 12:15:51 · 353 阅读 · 0 评论 -
请你谈谈案例分析事务定义接口TransactionDefinition: 事务隔离级别 ,事务传播行为
1回顾事务事务在项目开发过程非常重要,涉及到数据的一致性的问题,不容马虎!事务管理是企业级应用程序开发中必备技术,用来确保数据的完整性和一致性。事务就是把一系列的动作当成一个独立的工作单元,这些动作要么全部完成,要么全部不起作用。事务四个属性ACID原子性(atomicity)事务是原子性操作,由一系列动作组成,事务的原子性确保动作要么全部完成,要么完全不起作用一致性(consistency)一旦所有事务动作完成,事务就要被提交。数据和资源处于一种满足业务规则的一致性状态中隔离性(isol原创 2021-01-24 20:48:24 · 424 阅读 · 0 评论 -
Spring整合MyBatis
1 整合MyBatis1 步骤1导入相关jar包<?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原创 2021-01-24 20:48:16 · 267 阅读 · 0 评论 -
Spring(5)——静态/动态代理模式
1静态/动态代理模式AOP的底层机制就是动态代理代理模式:1静态代理2动态代理1静态代理角色分析抽象角色 : 一般使用接口或者抽象类来实现真实角色 : 被代理的角色代理角色 : 代理真实角色 ; 代理真实角色后 , 一般会做一些附属的操作 .客户 : 使用代理角色来进行一些操作代码实现1接口 Rent. java 即抽象角色package com.zs.demo1;// 租房的接口public interface Rent { public void rent(原创 2021-01-24 20:47:56 · 117 阅读 · 0 评论 -
Spring(4)——使用注解开发、使用java的方式配置spring
1 使用注解在spring4之后,想要使用注解形式,必须得要引入aop的包org.springframework:spring-aop:5.2.0.RELEASE在配置文件当中,还得要引入一个context约束<?xml version="1.0" encoding="UTF-8"?><beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001原创 2021-01-24 20:47:46 · 96 阅读 · 0 评论 -
Spring(3)——Bean自动装配
1 Bean自动装配自动装配是使用spring满足bean依赖的一种方法spring会在应用上下文中为某个bean寻找其依赖的beanSpring中bean有三种装配机制,分别是:1在xml中显式配置2在java中显式配置3隐式的bean发现机制和自动装配【重要】测试环境搭建Cat.classpackage com.zs.pojo;import lombok.AllArgsConstructor;import lombok.Data;import lombok.NoArgsCons原创 2021-01-24 20:47:36 · 106 阅读 · 1 评论 -
Spring(2)——依赖注入DI、Bean的作用域
1 依赖注入(DI)依赖注入(Dependency Injection,DI)依赖 : 指Bean对象的创建依赖于容器注入 : 指Bean对象中的所有属性,由容器来注入1构造器注入2Set 注入1环境搭建Address.javapackage com.zs.pojo;import lombok.AllArgsConstructor;import lombok.Data;import lombok.NoArgsConstructor;@Data@NoArgsConstructor原创 2021-01-24 20:47:29 · 94 阅读 · 0 评论 -
01_快速上手Spring
1 spring 简介Spring理念 : 使现有技术更加实用 . 本身就是一个大杂烩 , 整合现有的框架技术官网 : http://spring.io/官方下载地址 : https://repo.spring.io/libs-release-local/org/springframework/spring/GitHub : https://github.com/spring-projects优点1、Spring是一个开源免费的框架 , 容器 .2、Spring是一个轻量级的框架 , 非侵入原创 2021-01-24 20:47:17 · 158 阅读 · 0 评论 -
06_springboot整合-异步、定时、邮件任务
1 异步任务1、创建一个service包2、创建一个类AsyncService异步处理还是非常常用的,比如我们在网站上发送邮件,后台会去发送邮件,此时前台会造成响应不动,直到邮件发送完毕,响应才会成功,所以我们一般会采用多线程的方式去处理这些任务。AsyncService.javapackage com.zs.service;import org.springframework.stereotype.Service;@Servicepublic class AsyncService {原创 2021-01-25 12:23:02 · 170 阅读 · 0 评论 -
05_springboot整合Swagger
1 Swagger前后端分离前端 -> 前端控制层、视图层后端 -> 后端控制层、服务层、数据访问层前后端通过API进行交互前后端相对独立且松耦合产生的问题前后端集成,前端或者后端无法做到“及时协商,尽早解决”,最终导致问题集中爆发解决方案首先定义schema [ 计划的提纲 ],并实时跟踪最新的API,降低集成风险Swagger号称世界上最流行的API框架Restful Api 文档在线自动生成器 => API 文档 与API 定义同步更新直接运行,在线测试AP原创 2021-01-25 12:29:46 · 165 阅读 · 0 评论 -
springboot(18)——Shiro
1 Shiro的快速入门1.Shiro简介什么是权限管理?权限管理属于系统安全的范畴,权限管理实现对用户访问系统的控制,按照安全规则或者安全策略控制用户可以访问而且只能访问自己被授权的资源。权限管理包括身份认证和授权两部分。对于需要访问控制的资源用户首先经过身份认证,认证通过后用户具有该资源的访问权限才可访问。什么是Shiro?Shiro是一个Java的安全(权限)框架,相对简单,对比Spring Security,没有Spring Security的功能强大。但是实际工作中可能不需要那么复杂 的原创 2021-01-25 12:27:56 · 129 阅读 · 0 评论 -
springboot(17)——集成SpringSecurity(安全)
1 集成SpringSecurity在 Web 开发中,安全一直是非常重要的一个方面。安全虽然属于应用的非功能性需求,但是应该在应用开发的初期就考虑进来。如果在应用开发的后期才考虑安全的问题,就可能陷入一个两难的境地:一方面,应用存在严重的安全漏洞,无法满足用户的要求,并可能造成用户的隐私数据被攻击者窃取;另一方面,应用的基本架构已经确定,要修复安全漏洞,可能需要对系统的架构做出比较重大的调整,因而需要更多的开发时间,影响应用的发布进程。因此,从应用开发的第一天就应该把安全相关的因素考虑进来,并在整个应用原创 2021-01-25 12:27:39 · 226 阅读 · 0 评论 -
springboot之整合MyBatis
1 整合MyBatis官方文档:http://mybatis.org/spring-boot-starter/mybatis-spring-boot-autoconfigure/Maven仓库地址:https://mvnrepository.com/artifact/org.mybatis.spring.boot/mybatis-spring-boot-starter/2.1.11 创建实体类package com.zs.pojo;import lombok.AllArgsConstructor原创 2021-01-25 12:27:26 · 128 阅读 · 0 评论 -
springboot之整合Druid
1 集成Druid1 Druid简介Java程序很大一部分要操作数据库,为了提高性能操作数据库的时候,又不得不使用数据库连接池。Druid 是阿里巴巴开源平台上一个数据库连接池实现,结合了 C3P0、DBCP 等 DB 池的优点,同时加入了日志监控。Druid 可以很好的监控 DB 池连接和 SQL 的执行情况,天生就是针对监控而生的 DB 连接池。Druid已经在阿里巴巴部署了超过600个应用,经过一年多生产环境大规模部署的严苛考验。Spring Boot 2.0 以上默认使用 Hikari原创 2021-01-25 12:33:50 · 185 阅读 · 0 评论 -
springboot之整合JDBC
1 JDBCSping Data 官网:https://spring.io/projects/spring-data数据库相关的启动器 :可以参考官方文档:https://docs.spring.io/spring-boot/docs/2.2.5.RELEASE/reference/htmlsingle/#using-boot-starter1 创建新的springboot项目2 编写yaml配置文件连接数据库spring: datasource: username: root原创 2021-01-25 12:26:31 · 100 阅读 · 0 评论 -
springboot(13)——员工管理系统之删除员工信息
1 删除员工信息2 注销原创 2021-01-25 12:26:18 · 410 阅读 · 0 评论 -
springboot(12)——员工管理系统之修改员工信息
1 修改员工信息update.html<main role="main" class="col-md-9 ml-sm-auto col-lg-10 pt-3 px-4"> <form class="form-horizontal" th:action="@{/updateEmp}" method="post"> <input type="hidden" name="id" th:value="${emp.getId()}"> <原创 2021-01-25 12:26:05 · 224 阅读 · 0 评论 -
springboot(11)——员工管理系统之增加员工实现
1 增加员工实现add.html<main role="main" class="col-md-9 ml-sm-auto col-lg-10 pt-3 px-4"> <form class="form-horizontal" th:action="@{/emp}" method="post"> <div class="form-group"> <label class="col-sm-2 control-label">原创 2021-01-25 12:25:52 · 194 阅读 · 0 评论 -
springboot(10)——员工管理系统之展示员工列表
1提取公共页面高亮显示:2 列表显示原创 2021-01-25 12:25:36 · 297 阅读 · 0 评论 -
springboot(9)——员工管理系统之登录功能的实现
1 登录功能的实现以上界面是由下面的代码而来的index.html文件如下:<!DOCTYPE html><!--thymeleaf 添加命名空间 xmlns:th="http://www.thymeleaf.org"--><html lang="en-US" xmlns:th="http://www.thymeleaf.org"> <head> <meta http-equiv="Content-Type" content="te原创 2021-01-25 12:25:23 · 323 阅读 · 1 评论 -
springboot(8)——员工管理系统之页面国际化
1 页面国际化1 首先要配置fileEncodings2 目录结构3 源码配置流程Message Expressions: #{…}国际化的消息转换 MessageCodesResolver.classAcceptHeaderLocaleContextResolver.class其中这个参数request.getAParameter(“l”);----------------->图片下:这个l='zh_CN’就是地址栏传递的参数这个类写好了之后,需要放入bean里面原创 2021-01-26 07:16:05 · 106 阅读 · 0 评论 -
springboot(8)——员工管理系统之首页配置
1 项目准备工作数据准备阶段Employee .javapackage com.zs.helloword.pojo;import lombok.AllArgsConstructor;import lombok.Data;import lombok.NoArgsConstructor;import java.util.Date;// 员工表@Data@NoArgsConstructorpublic class Employee { private Integer id;原创 2021-01-25 12:25:09 · 154 阅读 · 1 评论 -
springBoot对SpringMVC所作的配置 Spring MVC Auto-configuration
1 Inclusion of ContentNegotiatingViewResolver and BeanNameViewResolver beans视图解析器https://docs.spring.io/spring-boot/docs/2.1.6.RELEASE/reference/html/boot-features-developing-web-applications.htmlSpringBoot对我们的SpringMVC还做了哪些配置,包括如何扩展,如何定制。Spring MVC Au原创 2021-01-25 12:24:56 · 759 阅读 · 0 评论 -
springboot首页如何定制?
1 首页如何定制源码展示执行过程2 模板引擎https://docs.spring.io/spring-boot/docs/2.1.6.RELEASE/reference/htmlsingle/#using-boot在pom.xml导入依赖我们都是3.x版本开发 <dependency> <groupId>org.thymeleaf</groupId> <artifactId>thymeleaf-spring5</artifa原创 2021-01-25 12:24:44 · 140 阅读 · 0 评论 -
springboot如何处理静态资源?
问题1:静态资源的导入 @Override public void addResourceHandlers(ResourceHandlerRegistry registry) { if (!this.resourceProperties.isAddMappings()) { // 使用默认静态资源处理--->return logger.debug("Default resource handling disabled"); return; } Duration原创 2021-01-25 12:24:32 · 136 阅读 · 0 评论 -
springboot(4)——自动配置原理
1 详解源码过程点击注解:@SpringBootApplication程序的主入口注解:@SpringBootConfiguration @EnableAutoConfiguration特别注意:@EnableAutoConfiguration 自动导入配置点击注解:@EnableAutoConfiguration注解:@Import(AutoConfigurationImportSelector.class)注意:List<String> configurations =原创 2021-01-25 12:24:21 · 132 阅读 · 0 评论 -
springboot(3)——松散绑定、JSR303数据校验、多环境切换、配置文件的加载位置
1 松散绑定yml中写的last-name,这个和lastName是一样的, - 后面跟着的字母默认是大写的,这就是松散绑定。Dog.javapackage com.zs.helloword.pojo;import org.springframework.beans.factory.annotation.Value;import org.springframework.boot.context.properties.ConfigurationProperties;import org.spri原创 2021-01-25 12:24:02 · 198 阅读 · 0 评论 -
springboot(2)——yaml配置注入
1 yaml配置注入yaml文件更强大的地方在于,他可以给我们的实体类直接注入匹配值SpringBoot使用一个全局的配置文件 , 配置文件名称是固定的**【application.yaml】**配置文件的作用:修改SpringBoot自动配置的默认值。yaml基础语法说明:语法要求严格!1、空格不能省略2、以缩进来控制层级关系,只要是左边对齐的一列数据都是同一个层级的。3、属性和值的大小写都是十分敏感的。例子程序Dog.javapackage com.zs.helloword原创 2021-01-25 12:23:48 · 117 阅读 · 1 评论 -
MyBatis的缓存机制
1.1 缓存简介存在内存中的临时数据。将用户经常查询的数据放在缓存(内存)中,用户去查询数据就不用从磁盘上(关系型数据库数据文件)查询,从缓存中查询,从而提高查询效率,解决了高并发系统的性能问题。为什么使用缓存减少和数据库的交互次数,减少系统开销,提高系统效率。什么样的数据能使用缓存经常查询并且不经常改变的数据。1.2 Mybatis缓存MyBatis系统中默认定义了两级缓存:一级缓存和二级缓存。默认情况下,只有一级缓存开启。(SqlSession级别的缓存,也称为本地缓存)二级原创 2020-12-09 21:01:30 · 253 阅读 · 0 评论 -
04_MyBatis动态SQL
动态SQL指的是根据不同的查询条件 , 生成不同的Sql语句。MyBatis 采用功能强大的基于 OGNL 的表达式来淘汰其它大部分元素。 ------------------------------- - if - choose (when, otherwise) - trim (where, set) - foreach -------------------------------1.1 环境搭建搭建数据库CREATE TABLE `blog` (`id` varc原创 2020-12-09 09:53:47 · 109 阅读 · 0 评论 -
03_MyBatis多对一&一对多处理
1.1 环境配置pom.xml<?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.a原创 2020-12-08 09:18:39 · 194 阅读 · 0 评论 -
MyBatis(5)——注解
1.1 面向接口编程根本原因 : 解耦 , 可拓展 , 提高复用 , 分层开发中 , 上层不用管具体的实现 , 大家都遵守共同的标准 , 使得开发变得容易 , 规范性更好。接口从更深层次的理解,应是定义(规范,约束)与实现(名实分离的原则)的分离。接口的本身反映了系统设计人员对系统的抽象理解。1.2 利用注解开发注意:利用注解开发就不需要mapper.xml映射文件了1、我们在我们的接口中添加注解 //根据查询全部用户 @Select("select * from user")原创 2020-12-07 20:46:43 · 158 阅读 · 0 评论 -
02_MyBatis分页&注解开发
1.1 分页思考:为什么需要分页?在学习mybatis等持久层框架的时候,会经常对数据进行增删改查操作,使用最多的是对数据库进行查询操作,如果查询大量数据的时候,我们往往使用分页进行查询,也就是每次处理小部分数据,这样对数据库压力就在可控范围内。1.2 limit 分页的功能select * from user limit 0,2;测试// 分页 List<User> getUserByLimit(Map<String , Integer> map);原创 2020-12-07 17:02:18 · 350 阅读 · 0 评论