Spring Config

Spring入门详解及案例

老子叫甜甜 提交于 2021-02-20 17:23:16
Spring浅入浅出——不吹牛逼不装逼 前言: 今天决定要开始总结框架了,虽然以前总结过两篇,但是思维是变化的,而且也没有什么规定说总结过的东西就不能再总结了,是吧。这次总结我命名为浅入浅出,主要在于理解框架核心,轻松愉快使用框架。 核心思想 我们都学了面向对象,在生活中,当人们需要一件东西时,第一反应就是找东西,例如想吃面包,现在有两种情况,第一种是没有面包店,第二种是有面包店。第一种情况就是我们之前一直遇到的情况,在没有面包店的情况下,最直观的做法可能就是你按照自己的口味制作面包,也就是一个面包需要主动制作,谁想吃了就自己New。而我主要说的是第二种情况,就是有面包店,你想吃面包的时候找到面包店,把自己的口味告诉店家,店家就可以给你做符合你口味的面包了。注意:你并没有制作面包,而是由店家制作,但是完全符合你的口味。 这是一个很生活的例子,大家都明白,但这里包含了Spring中很重要的思想——控制反转,就是把制作面包的主动权交给店家,面包就是对象,店家相当于一个大容器,你想要什么对象,就让大容器去给你生产,这就是控制反转思想。 再详细点,当某个Java对象(调用者,例如你)需要调用另一个Java对象(被调用者,即被依赖对象,例如面包)时,在传统编程模式下,调用者通常会采用“New 被调用者”的代码方式来创建对象(例如你自己制作面包)。这种方式会增加调用者与被调用者之间的耦合性

Spring cloud

只愿长相守 提交于 2020-11-24 19:00:06
从配置获取的配置默认是明文的,有些像数据源这样的配置需要加密的话,需要对配置中心进行加密处理。下面使用对称性加密来加密配置,需要配置一个密钥,当然也可以使用RSA非对称性加密,但对称加密比较方便也够用了,这里就以对称加密来配置即可。 1、安装JCE JDK下的JCR默认是有长度限制的,需要替换没有长度限制的JCE版本。 JAVA 1.7 http://www.oracle.com/technetwork/java/javase/downloads/jce-7-download-432124.html JAVA 1.8 http://www.oracle.com/technetwork/java/javase/downloads/jce8-download-2133166.htm 把下载包里面的两个jar文件复制替换到JAVA_HOME/jre/lib/security目录下。 2、添加加密KEY 配置中心配置文件中加入加密密钥。 下面是配置中心的代码: 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

spring注解开发和全注解开发

你说的曾经没有我的故事 提交于 2020-10-08 08:28:50
一、常用的一些注解说明: (1)Spring针对bean管理中为 创建对象/实例化对象提供注解 @Component(组件,范围大,没有明确的角色,可以通用) @Service在业务逻辑层使用(service层) @Controller在展现层(web)使用,控制器的声明(C) @Repository 在数据访问层使用(dao层) 上面四个注解的功能都是一样的,都可以用来创建bean 对象/实例。后三个更是见名知意,角色清晰。 (2)Spring针对bean 为对象的属性设置属性值也 提供注解 @Autowired:根据属性类型 进行自动注入/装配 @Qualifier :根据属性名称进行注入。必须和@Autowired一起使用,@Autowired在上,@Qualifier在下 @Resurce:可以根据类型注入,也可以根据名称注入。 二、在案例中的具体用法 (1)我们一般是先创建对象(这里由spring容器帮我们创建对象),然后才使用对象的。我们只需要在自定义类的上面用注解进行标记,spring容器就帮我们自动创建该类的对象。 (2)创建完对象后,就要为对象的属性设置属性值(这里由spring容器帮我们为对象的属性赋值)。我们只需要在属性的上面用注解进行标记,spring容器就帮我们自动设置该属性的值。 具体步骤 (2.1)先有javax.annotation

Spring进阶案例之注解和IoC案例

烂漫一生 提交于 2020-08-13 12:14:08
Spring进阶案例之注解和IoC案例 一、常见的注解分类及其作用 从此前的基于xml的IoC开发案例和依赖注入案例中,我们可以将xml配置归纳为: <bean id="" class="" scope="" init-method = "" destroy-method = ""> <property name = "" value = "" | ref = ""></property> </bean> 注解按照作用可以分为四类: 1.用于创建对象的注解:相当于xml配置的bean标签 创建对象的注解有如下几个: 注解 作用 属性 @Component 把当前类对象存入Spring容器中 value: 用于指定bean的id。当不写value属性时,默认值是当前类名,且首字母改小写 @Controller 一般用在表现层创建bean 同上 @Service 一般用在业务层创建bean 同上 @Repository 一般用在持久层创建bean 同上 最后三个注解的作用和属性与Component注解一模一样,他们是Spring框架为我们提供明确三层架构的注解,可以使三层架构更加清晰。 如果我们在AccoutServiceImpl类上加上@Component("accountService")或者@Service("accountService")

Spring浅入浅出—不吹牛逼不装逼

亡梦爱人 提交于 2020-08-11 07:13:35
前言 又总结了点框架,虽然以前总结过两篇,但是思维是变化的,而且也没有什么规定说总结过的东西就不能再总结了,是吧。这次总结我命名为浅入浅出,主要在于理解框架核心,轻松愉快使用框架。 核心思想 我们都学了面向对象,在生活中,当人们需要一件东西时,第一反应就是找东西,例如想吃面包,现在有两种情况,第一种是没有面包店,第二种是有面包店。第一种情况就是我们之前一直遇到的情况,在没有面包店的情况下,最直观的做法可能就是你按照自己的口味制作面包,也就是一个面包需要主动制作,谁想吃了就自己New。而我主要说的是第二种情况,就是有面包店,你想吃面包的时候找到面包店,把自己的口味告诉店家,店家就可以给你做符合你口味的面包了。注意:你并没有制作面包,而是由店家制作,但是完全符合你的口味。 这是一个很生活的例子,大家都明白,但这里包含了Spring中很重要的思想——控制反转,就是把制作面包的主动权交给店家,面包就是对象,店家相当于一个大容器,你想要什么对象,就让大容器去给你生产,这就是控制反转思想。 再详细点,当某个Java对象(调用者,例如你)需要调用另一个Java对象(被调用者,即被依赖对象,例如面包)时,在传统编程模式下,调用者通常会采用“New 被调用者”的代码方式来创建对象(例如你自己制作面包)。这种方式会增加调用者与被调用者之间的耦合性,不利于后期代码的升级和维护。 当Spring框架出现后

Spring Enable***功能

蹲街弑〆低调 提交于 2020-08-08 16:49:52
spring博大精深,衍生出了两大系列:spring boot 和sping cloud快速业务开发模式。 我们进行具体开发时,经常看到这样以Enable*开头的注解,如图 ​ ​ 等等好多例子。。。框架自带的Enable* @EnableAspectJAutoProxy 开启对AspectJ自动代理的支持 @EnableAsync 开启异步方法的支持 @EnableScheduling 开启计划任务的支持 @EnableWebMvc 开启Web MVC的配置支持 @EnableConfigurationProperties 开启对 @ConfigurationProperties注解配置Bean的支持 @EnableJpaRepositories 开启对SpringData JPA Repository的支持 @EnableTransactionManagement 开启注解式事务的支持 @EnableCaching 开启注解式的缓存支持 看到不少网文吹嘘的上天了、神乎其威,我只说一句话: 它(指Enable*)只是一种注解 ,可参考我的博文: Spring中@Import的三种情况 https://www.cnblogs.com/dongguangming/p/12963060.html 和 Spring Bean注册的几种方式 https://www.cnblogs.com

Spring Enable***功能

懵懂的女人 提交于 2020-08-08 06:20:46
spring博大精深,衍生出了两大系列:spring boot 和sping cloud快速业务开发模式。 我们进行具体开发时,经常看到这样以Enable*开头的注解,如图 等等好多例子。。。框架自带的Enable* @EnableAspectJAutoProxy 开启对AspectJ自动代理的支持 @EnableAsync 开启异步方法的支持 @EnableScheduling 开启计划任务的支持 @EnableWebMvc 开启Web MVC的配置支持 @EnableConfigurationProperties 开启对 @ConfigurationProperties 注解配置Bean的支持 @EnableJpaRepositories 开启对SpringData JPA Repository的支持 @EnableTransactionManagement 开启注解式事务的支持 @EnableCaching 开启注解式的缓存支持 看到不少网文吹嘘的上天了、神乎其威,我只说一句话: 它(指Enable*)只是一种注解 ,可参考我的博文: Spring中@Import的三种情况 https://my.oschina.net/u/154866/blog/4290666 和 Spring Bean注册的几种方式 https://my.oschina.net/u/154866/blog

spring5 源码深度解析----- IOC 之 容器的基本实现

微笑、不失礼 提交于 2020-04-18 04:43:46
概述 上一篇我们搭建完Spring源码阅读环境, spring源码深度解析—Spring的整体架构和环境搭建 这篇我们开始真正的阅读Spring的源码,分析spring的源码之前我们先来简单回顾下spring核心功能的简单使用 容器的基本用法 bean是spring最核心的东西,spring就像是一个大水桶,而bean就是水桶中的水,水桶脱离了水也就没有什么用处了,我们简单看下bean的定义,代码如下: package com.chenhao.spring; /** * @author : ChenHao * @Description: * @Date: Created in 10:35 2019/6/19 * @Modified by: */ public class MyTestBean { private String name = "ChenHao" ; public String getName() { return name; } public void setName(String name) { this .name = name; } } 源码很简单,bean没有特别之处,spring的的目的就是让我们的bean成为一个纯粹的的POJO,这就是spring追求的,接下来就是在配置文件中定义这个bean,配置文件如下: <?xml version="1.0"

mars-config 动态配置管理

|▌冷眼眸甩不掉的悲伤 提交于 2019-12-12 01:15:38
【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>> mars-config 码云地址: https://gitee.com/fashionbrot/mars-config 介绍 spring mvc 、springboot 动态配置系统。http 轮训方式 更新 动态配置 软件架构 软件架构说明 后端使用技术 :springboot mybatis jwt 前端使用:thymeleaf 模板引擎 数据库 :mysql jdk :1.8 安装教程 先创建数据库mars_db ,导入 sql目录下的 init.sql 文件 mars-console 后端管理页面,直接使用外置tomcat 启动即可 端口默认:8080 mars-spring-config 发布jar 后依赖当前jar 即可使用 访问地址:ip + port 账户:mars 密码:mars 权限:超级管理员 使用说明 在启动类上使用 @EnableMarsConfig 开启功能使用 1、mars.config.app-id 服务名 和 后端appName 一致 2、mars.config.env-code 环境Code 和 后端envCode 一致 3、mars.config.http.server-address 服务Ip,多个服务地址已逗号分隔 在后端管理操作 1、应用环境管理 菜单 创建 应用

Spring Cloud Config 集成 Spring Cloud Bus 同步远程配置

本秂侑毒 提交于 2019-12-07 19:03:36
软件版本: Spring Boot - 2.1.3.RELEASE Spring Cloud - Greenwich.SR1 Spring Cloud Config Server 端 Spring Config Server 端依赖: <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-config-server</artifactId> </dependency> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-bus-amqp</artifactId> </dependency> bootstrap.properties 配置文件配置 : spring.application.name=config-server server.port=8000 # 这里我使用了 Spring Cloud Config 支持的 JDBC Backend 配置项存储方式 # 该配置文件中省略了 JDBC 的配置 spring.cloud.config.server.jdbc.sql=select `key` , `value` from config