- 博客(112)
- 收藏
- 关注
原创 SpringBoot集成Security
安全介绍在 Web 开发中,安全一直是非常重要的一个方面。安全虽然属于应用的非功能性需求,但是应该在应用开发的初期就考虑进来。如果在应用开发的后期才考虑安全的问题,就可能陷入一个两难的境地:一方面,应用存在严重的安全漏洞,无法满足用户的要求,并可能造成用户的隐私数据被攻击者窃取;另一方面,应用的基本架构已经确定,要修复安全漏洞,可能需要对系统的架构做出比较重大的调整,因而需要更多的开发时间,影响应用的发布进程。因此,从应用开发的第一天就应该把安全相关的因素考虑进来,并在整个应用的开发过程中。Spring
2021-03-30 22:14:38
318
1
原创 SpringBoot整合Mybatis
准备工作查看mybatis-spring-boot-starter启动器官方文档http://mybatis.org/spring-boot-starter/mybatis-spring-boot-autoconfigure/导入SpringBoot整合Mybatis所需要的依赖<dependency> <groupId>org.mybatis.spring.boot</groupId> <artifactId>mybatis-
2021-03-30 22:14:00
273
1
原创 SpringBoot整合Druid
Druid介绍Java程序很大一部分要操作数据库,为了提高性能操作数据库的时候,又不得不使用数据库连接池。Druid 是阿里巴巴开源平台上一个数据库连接池实现,结合了 C3P0、DBCP 等 DB 池的优点,同时加入了日志监控。Druid 可以很好的监控 DB 池连接和 SQL 的执行情况,天生就是针对监控而生的 DB 连接池。Hikari 与 Driud 都是当前 Java Web 上最优秀的数据源,SpringBoot如何集成Druid 数据源,如何实现数据库监控的呢?...
2021-03-30 22:12:46
429
原创 Springboot整合JDBC
SpringData介绍对于数据访问层,无论是 SQL(关系型数据库) 还是 NOSQL(非关系型数据库),Spring Boot 底层都是采用 Spring Data 的方式进行统一处理Spring Data官网:https://spring.io/projects/spring-data有关数据库相关的启动器:可以参考官方文档:https://docs.spring.io/spring-boot/docs/2.4.3/reference/htmlsingle/#using-boot-starter
2021-03-30 22:12:13
158
2
原创 springboot之Thymeleaf模板引擎
什么是模板引擎前端交给我们的页面,是html页面。如果是我们以前开发,我们需要把他们转成jsp页面,jsp好处就是当我们查出一些数据转发到JSP页面以后,我们可以用jsp轻松实现数据的显示,及交互等jsp支持非常强大的功能,包括能写Java代码,但是SpringBoot这个项目首先是以jar的方式,不是war,而且我们用的还是嵌入式的Tomcat,所以现在默认是不支持jsp的模板引擎的因此我们可以使用Thymeleaf模板引擎,springboot所支持的模板引擎有很多,模板引擎的作用就是我们来写一个
2021-03-30 22:11:26
234
2
原创 Springboot配置页面国际化
有时候网站会涉及中英文甚至多语言的切换,这时候我们需要学习国际化准备工作先设置properties的编码为utf-8编写国际化配置文件,在resources资源路径下新建i18n目录,存放国际化配置文件3.建立一个login.properties文件,还有一个login_zh_CN.properties,发现IDEA自动识别了我们要做国际化操作,文件夹改变了4.可以在这个文件夹下面新建一个文件可以添加一个存放英文的资源配置文件方便快捷6.当我们随便打开一个配置文件编
2021-03-30 22:10:33
392
3
原创 springboot之MVC自动配置原理
准备工作先从官方文档查阅:https://docs.spring.io/spring-boot/docs/2.4.3/reference/htmlsingle/#boot-features-spring-mvc-auto-configurationSpring MVC Auto-configuration// Spring Boot为Spring MVC提供了自动配置,它可以很好地与大多数应用程序一起工作。Spring Boot provides auto-configuration for Sp
2021-03-30 22:09:42
301
原创 springboot网页首页和图标定制
首页处理由于首页还是与webMVC有关,我们还是从spring-boot-autoconfigure依赖的METAINF下的spring.factories下面的WebMvcAutoConfiguration类中看源码查找在WebMvcAutoConfiguration类中发现有一个方法欢迎页处理映射 @Bean public WelcomePageHandlerMapping welcomePageHandlerMapping(ApplicationContext applicationCont
2021-03-30 22:08:55
512
3
原创 springboot使用web开发静态资源处理
静态资源处理前言:在项目中引入前端资源,应该有许多的静态资源,比如css,js,图片资源等等,如果我们是一个web应用,我们的main下会有一个webapp,我们以前都是将所有的页面导在这里面的,但是我们现在的pom呢,打包方式是为jar的方式,SpringBoot对于静态资源放置的位置,是有规定的静态资源映射规则在springboot中,springMVC的web配置都在WebMvcAutoConfiguration这个配置类里面,其中有一个方法:addResourceHandlers 添加资源处理
2021-03-30 22:08:01
230
1
原创 springboot自动装配原理
application.properties/.yaml配置文件内部到底能写什么?怎么写?在springboot的官方文档中可以看到有大量的配置,无法全部都记住官方文档:https://docs.spring.io/spring-boot/docs/2.4.3/reference/htmlsingle/#spring.application.name旧版的官方文档更直观(https://docs.spring.io/spring-boot/docs/2.1.9.RELEASE/reference/h
2021-03-30 15:13:28
137
原创 springboot多环境切换
官方文档介绍https://docs.spring.io/spring-boot/docs/2.4.3/reference/htmlsingle/#boot-features-external-config配置文件加载位置springboot 启动会扫描以下位置的application.properties或者application.yml文件作为Spring boot的默认配置文件优先级1:项目路径下的config文件夹下面的直接子文件夹下的配置文件优先级2:项目路径的config文件夹配置
2021-03-28 11:05:47
333
1
原创 springboot使用JSR303数据校验
如何使用在springboot2.3.0版本以后需要引入validation的starter启动器<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-validation</artifactId></dependency>用注解@validated标注某个
2021-03-26 16:37:57
241
原创 springboot使用yml(yaml)配置注入
springboot中配置文件SpringBoot使用一个全局的配置文件 , 配置文件名称是固定的application.properties它的语法结构:key=valueapplication.yml或者application.yaml(两者相同)它的语法结构:key:空格 value使用配置文件的作用 :修改SpringBoot自动配置的默认值,因为SpringBoot在底层都给我们自动配置好了;我们可以手动修改配置文件中的默认值,比如修改Tomcat默认启动的端口号server
2021-03-26 16:34:29
7788
原创 Springboot运行原理
pom.xml文件父依赖主要是管理项目的资源过滤及插件!<!-- 父依赖 --><parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>2.4.0</version> <relativePath/> <
2021-03-26 16:32:40
158
原创 什么是微服务架构
什么是微服务?微服务是一种架构风格,它要求我们在开发一个引用的时候,这个应用必须构建成一系列小服务的组合,可以通过http的方式进行互通过去的单体应用架构所谓单体应用架构(all in one)是值,我们将一个应用中的所有应用服务都封装在一个应用中,无论是ERP、CRM或者是其他什么系统,你都把数据库访问,web访问…等等各个功能放到一个war包内单体应用的好处是易于开发和测试,也十分方便部署,当需要拓展时,只需要将war包复制多份,然后放到多个服务器上,再做个负载均衡就可以了单体应用的缺点是如
2021-03-26 16:31:56
421
原创 springBoot第一个程序
准备工作java version 1.8mavenspringboot最新版开发工具:idea创建基础项目说明spring官方提供了非常方便的工具让我们快速构建应用Spring Initializr:https://start.spring.io/项目创建方式一,使用https://start.spring.io/的web页面创建项目填写项目信息点击”Generate Project“按钮生成项目;下载此项目解压项目包,并用IDEA以Maven项目导入,一路下一步即可,直到项
2021-03-26 13:44:43
302
3
原创 SpringBoot框架介绍
什么是SpringBoot什么是SpringBoot呢,就是一个javaweb的开发框架,和SpringMVC类似,对比其他javaweb框架的好处,官方说是简化开发,约定大于配置, you can “just run”,能迅速的开发web应用,几行代码开发一个http接口。所有的技术框架的发展似乎都遵循了一条主线规律:从一个复杂应用场景 衍生 一种规范框架,人们只需要进行各种配置而不需要自己去实现它,这时候强大的配置功能成了优点;发展到一定程度之后,人们根据实际生产应用情况,选取其中实用功能和设计精
2021-03-26 11:53:42
8402
原创 SpringMVC实现文件上传和下载
准备工作文件上传是项目开发中最常见的功能之一 ,springMVC 可以很好的支持文件上传,但是SpringMVC上下文中默认没有装配MultipartResolver,因此默认情况下其不能处理文件上传工作。如果想使用Spring的文件上传功能,则需要在上下文中配置MultipartResolver。前端表单要求:为了能上传文件,必须将表单的method设置为POST,并将enctype设置为multipart/form-data。只有在这样的情况下,浏览器才会把用户选择的文件以二进制数据发送给服务器
2021-03-26 10:40:26
271
原创 SpringMVC之拦截器使用
拦截器的介绍SpringMVC的处理器拦截器类似于Servlet开发中的过滤器Filter,用于对处理器进行预处理和后处理,可以通过自定义拦截器来实现特定的功能。过滤器与拦截器的区别:拦截器是AOP思想的具体应用过滤器:servlet规范中的一部分,任何java web工程都可以使用在url-pattern中配置了/*之后,可以对所有要访问的资源进行拦截过滤拦截器:拦截器是SpringMVC框架自己的,只有使用了SpringMVC框架的工程才能使用拦截器只会拦截访问的控制
2021-03-26 10:40:07
163
原创 探究AJAX
AJAX简介AJAX = Asynchronous JavaScript and XML(异步的 JavaScript 和 XML)。AJAX 是一种在无需重新加载整个网页的情况下,能够更新部分网页的技术。Ajax 不是一种新的编程语言,而是一种用于创建更好更快以及交互性更强的Web应用程序的技术在 2005 年,Google 通过其 Google Suggest 使 AJAX 变得流行起来。Google Suggest能够自动帮你完成搜索单词。Google Suggest 使用 AJAX 创造
2021-03-26 10:39:44
128
原创 SSM框架整合
环境要求idea编译器mysql8.0+Tomcat 8Maven 3.6.3要求:需要熟练掌握mysql数据库、spring框架、springmvc框架、JavaWeb及Mybatis框架知识,前端知识数据库环境搭建创建一个存放书籍数据的数据库表CREATE DATABASE `ssmbuild`;USE `ssmbuild`;DROP TABLE IF EXISTS `books`;CREATE TABLE `books` (`bookID` INT(10) NOT N
2021-03-26 10:39:11
120
原创 SpringMVC之Json交互
使用Controller返回JSON数据导入json解析工具Jackson<dependency> <groupId>com.fasterxml.jackson.core</groupId> <artifactId>jackson-databind</artifactId> <version>2.12.0-rc2</version>
2021-03-10 15:34:23
290
1
原创 SpringMVC乱码问题解决
乱码问题编写一个提交的表单<form action="/t" method="post"> <input type="text" name="name"> <input type="submit"> </form>编写Controller进行处理表单提交的数据并返回视图给前端@Controllerpublic class TestEncoding { @PostMapping("/t") public
2021-03-08 08:31:07
374
1
原创 SpringMVC之数据处理与数据回显
处理地址栏传输的数据这里以浏览器get方式请求为例地址栏提交的域名称和处理方法的参数一致时@Controllerpublic class RestFulController { //映射访问路径,必须是POST请求 @GetMapping("/add") public String test(String name) { System.out.println(name); //返回视图位置 return "hello";
2021-03-07 10:04:39
387
2
原创 SpringMVC实现跳转
通过SpringMVC来实现转发和重定向,无视图解析器转发方式跳转将springmvc核心配置文件中视图解析器注释:编写controller类@Controllerpublic class RestFulController { //映射访问路径,必须是POST请求 @GetMapping("/add") public String test( Model model) { //Spring MVC会自动实例化一个Model对象用于向视图中传值 .
2021-03-06 10:48:33
402
4
原创 SpringMVC之RestFul风格
概念Restful就是一个资源定位及资源操作的风格。不是标准也不是协议,只是一种风格。基于这个风格设计的软件可以更简洁,更有层次,更易于实现缓存等机制传统方式操作资源:通过不同的参数来实现不同的效果!方法单一,使用post 和 get方法使用RESTful操作资源:可以通过不同的请求方式来实现不同的效果!请求地址一样,但是功能可以不同!测试:传统使用get方式进行传参@Controllerpublic class RestFulController { @RequestMappin
2021-03-05 14:29:20
240
6
原创 SpringMVC的第一个程序
准备工作添加maven依赖<dependency> <groupId>org.springframework</groupId> <artifactId>spring-webmvc</artifactId> <version>5.3.1</version> </dependency>在工程中添加web支持(Tom
2021-03-02 16:26:43
126
原创 SpringMVC的概念
什么是MVCMVC是模型(Model)、视图(View)、控制器(Controller)的简写,是一种软件设计规范是将业务逻辑、数据、显示分离的方法来组织代码MVC主要作用是降低了视图与业务逻辑间的双向偶合MVC不是一种设计模式,MVC是一种架构模式。当然不同的MVC存在差异Model(模型):数据模型,提供要展示的数据,因此包含数据和行为,可以认为是领域模型或JavaBean组件(包含数据和行为),不过现在一般都分离开来:Value Object(数据Dao) 和 服务层(行为Service
2021-03-02 09:25:01
422
原创 spring整合Mybatis(Mybatis-Spring)
什么是 MyBatis-Spring?MyBatis-Spring 会帮助你将 MyBatis 代码无缝地整合到 Spring 中。它将允许 MyBatis 参与到 Spring 的事务管理之中,创建映射器 mapper 和 SqlSession 并注入到 bean 中,以及将 Mybatis 的异常转换为 Spring 的 DataAccessException。 最终,可以做到应用代码不依赖于 MyBatis,Spring 或 MyBatis-Spring。准备工作导入maven依赖<
2021-03-01 15:41:16
143
2
原创 Spring之AOP(面向切面编程)注解实现
准备工作maven添加依赖AOP切入点表达式<!-- 用于解析AOP切入点表达式--> <dependency> <groupId>org.aspectj</groupId> <artifactId>aspectjweaver</artifactId> <version>1.9.6</version>
2021-03-01 15:40:34
298
原创 Spring之jdbcTemplate
JdbcTemplate概述它是spring框架提供的一个对象,是对原始Jdbc API对象的简单封装,是用来操作关系型数据的JdbcTemplate的作用:用于和数据库交互,实现对表的CRUD操作准备工作导入maven依赖<dependency> <groupId>org.springframework</groupId> <artifactId>spring-jdbc</artifactI
2021-03-01 15:39:45
145
2
原创 spring之声明式事务
Spring中的事务管理没有进行事务的管理,我们想让它们都成功才成功,有一个失败,就都失败,我们就应该需要事务!以前我们都需要自己手动管理事务,十分麻烦!但是Spring给我们提供了事务管理,我们只需要配置即可Spring在不同的事务管理API之上定义了一个抽象层,使得开发人员不必了解底层的事务管理API就可以使用Spring的事务管理机制。Spring支持编程式事务管理和声明式的事务管理。编程式事务管理将事务管理代码嵌到业务方法中来控制事务的提交和回滚缺点:必须在每个事务操作业务逻辑中
2021-03-01 15:38:49
627
原创 Spring之AOP(面向切面编程)
什么是AOP?AOP为Aspect Oriented Programming的缩写,意为:面向切面编程利用AOP可以对业务逻辑的各个部分进行隔离,从而使得业务逻辑各部分之间的耦合度降低,提高程序的可重用性,同时提高了开发的效率。简单来说它就是把我们的程序重复的代码抽取出来,在需要执行的时候,使用动态代理的技术,在不修改源码的基础上,对我们已有的方法进行增强。AOP的作用及优势...
2021-03-01 15:10:49
131
1
原创 Spring之AOP概念理解
什么是AOP?AOP为Aspect Oriented Programming的缩写,意为:面向切面编程利用AOP可以对业务逻辑的各个部分进行隔离,从而使得业务逻辑各部分之间的耦合度降低,提高程序的可重用性,同时提高了开发的效率。简单来说它就是把我们的程序重复的代码抽取出来,在需要执行的时候,使用动态代理的技术,在不修改源码的基础上,对我们已有的方法进行增强。AOP的作用及优势作用:在不修改源码的基础上,对我们已有的方法进行增强。优势:减少重复代码提高开发效率维护方便AOP的实现方式
2021-02-27 10:40:01
195
原创 Spring自动装配Bean
属性autowire值byNamebyName:会自动在容器上下文中查找和自己实体类对象中set方法后面的值对应的bean的id测试:实体类Peoplepublic class People { private Cat cat; private Dog dog; private String name; public Cat getCat() { return cat; } public Dog getDog() {
2021-02-26 08:56:33
140
原创 Spring整合Junit测试
整合原因当前测试类存在一个问题,每一个测试方法都需要加载spring配置文件和springIOC容器由于当前的junit导入的jar包集成的main方法不知道我们使用了spring框架,他不会去主动读取spring配置文件和IOC容器而且当前Junit是别人写好的jar包我们不能修改里面的Runner核心类里面的内容因此,我们需要导入一个jar包把原有的Junit中main方法替换成spring提供的一个注解准备工作导入jar包<!-- 导入spring和Junit整合
2021-02-25 09:17:35
438
1
原创 Spring使用注解开发(四)
该类被注解标记,则是一个配置类,作用和bean一样,相当于用java代码代替XML文件配置@Configuration指定当前类是一个配置类当AnnotationConfigApplicationContext对象参数中声明了该类,此注解可以省略,但是如果该类没有配置该注解时,通过@ComponentScan扫描其他包时,如果扫描其他的类中没有配置@Configuration注解则不能生效@ComponentScan作用:用于通过注解指定spring在创建容器时要扫描的包属性:value 和ba
2021-02-24 09:23:17
143
原创 Spring使用注解开发(三)
用于改变作用范围:作用和bean标签中使用scope属性实现功能是一样的@scope作用:指定bean作用范围属性:value: singleton(单例) prototype(多例)
2021-02-23 08:52:26
151
5
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人