访问数据库基本是所有java web项目必备的,不论是oracle.mysql,或者是nosql,肯定需要和数据库打交道.一开始学java的时候,肯定是以jdbc为基础,如下: private static int insert(Student student) { String driver = "com.mysql.jdbc.Driver"; String url = "jdbc:mysql://localhost:3306/samp_db"; String u…
Spring Security 解析(五) -- Spring Security Oauth2 开发   在学习Spring Cloud 时,遇到了授权服务oauth 相关内容时,总是一知半解,因此决定先把Spring Security .Spring Security Oauth2 等权限.认证相关的内容.原理及设计学习并整理一遍.本系列文章就是在学习的过程中加强印象和理解所撰写的,如有侵权请告知. 项目环境: JDK1.8 Spring boot 2.x Spring Security 5.…
Spring Cloud 学习 之 Spring Cloud Eureka(源码分析) Spring Boot版本:2.1.4.RELEASE Spring Cloud版本:Greenwich.SR1 文章目录 客户端(以之前搭建的[客户端](https://blog.csdn.net/qq_41907991/article/details/89611301)demo为例): Region,Zone,ServiceUrls: 服务注册: 服务获取与服务续约: 注册中心的处理: 客户端(以之前搭建…
Spring Boot版本:2.1.4.RELEASE Spring Cloud版本:Greenwich.SR1 文章目录 搭建服务注册中心: 注册服务提供者: 高可用注册中心: 搭建服务注册中心: pom文件如下: <?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="h…
SpringBoot+MyBatis(xml)+Druid 前言 springboot集成了springJDBC与JPA,但是没有集成mybatis,所以想要使用mybatis就要自己去集成. 主要是在Spring Boot中集成MyBatis,可以选用基于注解的方式,也可以选择xml文件配置的方式.官方推荐使用xml文件配置. springboot+mybatis+druid 1. 引入依赖 <!-- Mybatis --> <dependency> <groupId>…
快速上手 配置文件 pom包配置 pom包里面添加jpa和thymeleaf的相关包引用 <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <dependency> <groupId>org.springframework.…
1. Spring Boot简介 初次接触Spring的时候,我感觉这是一个很难接触的框架,因为其庞杂的配置文件,我最不喜欢的就是xml文件,这种文件的可读性很不好.所以很久以来我的Spring学习都是出于停滞状态的. 不过这种状态在我接触了Spring Boot之后,就发生了改变.Spring官方可能也觉得庞杂的配置是一件很不优雅的事情,虽然加入了包扫描,但是也没有触及灵魂. Spring还有一个问题就是依赖的冲突问题,这个对我这种半道出家的程序员来说更是痛苦至极. 还好,所有的痛苦都被Spr…
1.准备数据库环境 # 创建数据库 CREATE DATABASE IF NOT EXISTS zifeiydb DEFAULT CHARSET utf8 COLLATE utf8_general_ci; use zifeiydb; # 创建一个名为tb_user的表 CREATE TABLE tb_user ( id int(32) PRIMARY KEY AUTO_INCREMENT, username varchar(32), address varchar(256) ); # 插入3条数…
spring data项目是spring解决数据访问问题的一系列解决方案,包含了大量关系型数据库以及非关系型数据库的访问解决方案. 一.spring data jpa 1.简介 jpa是一套规范,不提供实现,由不同的软件提供商自行实现各自的功能.这样做的好处就是使用者只需要按照规范中定义的操作方式来使用,不需要具体软件厂商的实现方式. 在soring data jpa中,建立访问层非常简单,如下: 不过这种方式只能操作于单表以及一些最基本的crud. 在使用spring data jpa之前,项…
Spring Cloud Config 参考个人项目 参考个人项目 : (希望大家能给个star~) https://github.com/FunriLy/springcloud-study/tree/master/%E6%A1%88%E4%BE%8B5 什么是 Spring Cloud Config? 配置管理工具包,让你可以把配置放到远程服务器,集中化管理集群配置,目前支持本地存储.Git以及Subversion. 场景介绍:在一个 Application 中,很经常需要连接资源和其它应用,…
纸上得来终觉浅,绝知此事要躬行 文章大纲 什么是spring 传统Java web应用架构 更强的Java Web应用架构--MVC框架 Spring--粘合式框架 spring的内涵 spring核心 JavaBean 应用上下文 IoC/DI spring框架组成 spring还可以做什么 什么是Spring Spring框架是Java平台的开源的全栈应用程序框架和控制反转容器实现. 传统的Java Web应用架构 传统的Java web框架一般分为两层:Contrller-Model. 控…
Spring Security Spring Security 是 Spring Resource 社区的一个安全组件.在安全方面,有两个主要的领域,一是"认证",即你是谁:二是"授权",即你拥有什么权限,Spring Security 的主要目标就是在这两个领域 Spring OAuth2 OAuth2 是一个标准的授权协议,允许不同的客户端通过认证和授权的形式来访问被其保护起来的资源 OAuth2 协议在 Spring Resource 中的实现为 Spring…
1.Bean 的配置 Spring可以看做一个大型工厂,用于生产和管理Spring容器中的Bean,Spring框架支持XML和Properties两种格式的配置文件,在实际开发中常用XML格式的配置文件.XML配置文件的跟标签是<beans>,<beans>中包含了多个<bean>子元素,每个<bean>元素定义一个Bean,并描述Bean如何被装配到Spring容器中.<bean>元素的常用属性及其子元素说明如下: id属性:Bean在Bea…
1.Spring IOC的基本概念 IOC(Inverse of Control)反转控制的概念,就是将原本在程序中手动创建对象的控制权,交由Spring框架管理.当某个Java对象(调用者)需要调用另一个Java对象(被调用者)时,在传统编程模式下,调用者通常会采用“new 被调用者”的代码方式来创建对象.这种方式会增加调用者与被调用者之间的耦合性,不利于后期代码的升级与维护.当Spring框架出现后,对象的实例不再由调用者来创建,而是由Spring容器来创建.Spring容器会负责控制程序之…
 1. 回顾JDBC        a. java操作关系型数据的API.导入相关数据库的驱动包后可以通过JDBC提供的接口来操作数据库.        b. 实现JDBC的六个步骤            注册数据库驱动            获取数据库连接            获取传输器对象            传输sql执行获取结果集对象            遍历结果集获取信息            关闭资源        c. 数据库连接池(数据源) C3P0连接池 2.Spring…
一 public class City implements Serializable 实现了Sericalizable接口,只是一种标志.表示可以被序列化. java的ObjectOutputStream.ObjectInputStream类能对实现了Serializable接口的对象实现序列化与反序列化. 二 serialVersionUID 的作用 Java的序列化机制是通过判断类的serialVersionUID来验证版本一致性的. 在进行反序列化时,JVM会把传来的字节流中的seria…
最近一段时间一直在学习Spring Boot,刚进的一家公司也正好有用到这个技术.虽然一直在学习,但是还没有好好的总结,今天周末先简单总结一下基础知识,等有时间再慢慢学习总结吧. Spring Boot 概述 首先,Spring Boot是一个框架,主要理念就是消除项目中大量的配置文件,使项目更加短小精悍.我们知道 java 的开发显得很笨重:繁多的配置.开发效率低下.复杂的布署流程以及第三方技术集成难度大.所以说,spring boot就是在此环境下产生的. Spring Boot 的核心功能…
spring boot 框架整合 thymeleaf spring boot 的官方文档中建议开发者使用模板引擎,避免使用 JSP.因为若一定要使用 JSP 将无法使用. 注意:本文主要参考学习了大神程序员DD的博客. 附上,相应链接:http://blog.didispace.com/springbootweb/ 关于 thymeleaf 模板引擎的介绍 thymeleaf 学习笔记 同时,模板引擎默认的模板配置路径为:src/main/resources/templates. Spring…
什么是Spring Boot Spring Boot正是在这样的一个背景下被抽象出来的开发框架,它本身并不提供Spring框架的核心特性以及扩展功能,只是用于快速.敏捷地开发新一代基于Spring框架的应用程序.也就是说,它并不是用来替代Spring的解决方案,而是和Spring框架紧密结合用于提升Spring开发者体验的工具.同时它集成了大量常用的第三方库配置(例如Jackson, JDBC, Mongo, Redis, Mail等等),Spring Boot应用中这些第三方库几乎可以零配置的…
spring boot 各版本中使用 log4j2 记录日志 前言 Spring Boot中默认日志工具是 logback,只不过我不太喜欢 logback.为了更好支持 spring boot 框架,我使用 log4j. spring boot 各版本与 log4j 的支持情况 1. spring boot 1.2.X 版本 spring boot 1.2.X 版本一般建议使用默认日志工具(logback),也可以使用 log4j. 但,注意的是:Spring Boot 1.2.4.RELEA…
Spring Boot对JMS(Java Message Service,Java消息服务)也提供了自动配置的支持,其主要支持的JMS实现有ActiveMQ.Artemis等.这里以ActiveMQ为例. 一.使用内嵌的ActiveMQ 1.添加ActiveMQ起步依赖 在项目的pom.xml中添加ActiveMQ的依赖信息: <dependency> <groupId>org.springframework.boot</groupId> <artifactId&…
一.添加Redis缓存 1.添加Redis起步依赖 在pom.xml中添加Spring Boot支持Redis的依赖配置,具体如下: <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-redis</artifactId> <version>1.4.7.RELEASE</version> </…
Spring Boot版本:2.1.4.RELEASE 启用: spring-boot-actuator模块提供了一系列的用于监控的端点.最简单的开启这个功能的方法就是,在pom文件中添加如下的依赖. <dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-actuator</artifac…
Spring Boot Admin 用于管理和监控一个或者多个 Spring Boot 程序 新建 spring-boot-admin-server pom <parent> <artifactId>spring-cloud-parent</artifactId> <groupId>com.karonda</groupId> <version>1.0.0</version> </parent> <mode…
MyBatis提供了多个注解如:@InsertProvider,@UpdateProvider,@DeleteProvider和@SelectProvider,这些都是建立动态语言和让MyBatis执行这些语言使用基于注解的mybatis的方法,还是比较好用的. 一 首先是定义mapper, @ SelectProvider去声明类(CitySqlProvide)和方法名(findByState), public interface CityMapper { @SelectProvider(ty…
断路器 Hystrix 断路器模式 (云计算设计模式) 断路器模式源于Martin Fowler的Circuit Breaker一文. 在分布式环境中,其中的应用程序执行访问远程资源和服务的操作,有可能对这些操作的失败是由于瞬时故障,如慢的网络连接,超时,或者被过度使用的资源或暂时不可用.这些故障一般之后的短时间内纠正自己. 所谓的断路器模式,就是当某个微服务发生故障时,通过断路器的故障监控,向调用方返回一个错误响应,而不是长时间的等待.这样就不会使得线程因调用故障服务被长时间占用不释放,避免了…
Zuul 作为路由网关组件,在微服务架构中有着非常重要的作用,主要体现在以下 6 个方面: Zuul, Ribbon 以及 Eureka 相结合,可以实现智能路由和负载均衡的功能,Zuul 能够将请求流量按某种策略分发到集群状态的多个服务实例 网关将所有服务的 API 接口统一聚合,并统一对外暴露.外界系统调用 API 接口时,都是由网关对外暴露的 API 接口,外界系统不需要知道微服务系统中各服务相互调用的复杂性.微服务系统也保护了其内部微服务单元的 API 接口 , 防止其被外界直 接调用,…
一.事务基本认识 1.事务的概述      为了保证数据库中数据的一致性,数据的操作应当是离散的成组的逻辑单元.当它全部完成时,数据的一致性可以保持,而当这个单元中的一部分操作失败,整个事务应当全部视为错误,所有从起始点以后的操作应全部回退到开始状态.      事务的操作: 先定义开始一个事务,然后对数据做修改操作,这时如果提交(commit),这些数据就永久的保存下来,如果回退(rollback),数据库管理系统就放弃所有的修改而回到开始事务的状态.   2.事务的属性 (1)原子性(Atm…
Spring Cloud Config为服务端和客户端提供了分布式系统的外部化配置支持.配置服务中心采用Git的方式存储配置文件,因此我们很容易部署修改,有助于对环境配置进行版本管理. 一.配置中心 1.1 新建模块config-server pom文件 <?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0"…
1. 使用动态代理实现AOP package com.atguigu.spring.aop; import java.lang.reflect.InvocationHandler; import java.lang.reflect.Method; import java.lang.reflect.Proxy; import java.util.Arrays; public class ArithmeticCalculatorLoggingProxy { //要代理的对象 private Arit…