1.Spring Aware(获取Spring容器的服务) hi, i am guodaxia! test.txt package com.zhen.highlights_spring4.ch3.aware; import org.apache.commons.io.IOUtils; import org.springframework.beans.factory.BeanNameAware; import org.springframework.context.ResourceLoaderAw…
1.项目搭建. <?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…
1.DI package com.zhen.highlights_spring4.ch1.di; import org.springframework.stereotype.Service; /** * @author zhen * @Date 2018/6/12 10:05 */ @Service public class FunctionService { public String sayHello(String word){ return "Hello " + word + &…
出自:http://blog.csdn.net/qq_26525215 @EnableAspectJAutoProxy @EnableAspectJAutoProxy注解 激活Aspect自动代理 <aop:aspectj-autoproxy/> 开启对AspectJ自动代理的支持. 在用到AOP的自动代理的时候用,如果你理解了Java的动态代理,很容易的就会熟悉AOP的自动代理的. @EnableAsync @EnableAsync注解开启异步方法的支持. 这个相信大家都比较熟悉的.对于异步…
1.Scope package com.zhen.highlights_spring4.ch2.scope; import org.springframework.context.annotation.Scope; import org.springframework.stereotype.Service; /** * @author zhen * @Date 2018/6/12 11:38 */ @Service @Scope("prototype") public class De…
一.组合注解与元注解 从Spring 2开始,为了响应JDK 1.5推出的注解功能,Spring开始大量加入注解来替代xml配置.Spring的注解主要用来配置注入Bean,切面相关配置(@Transactional).随着注解的大量使用,尤其相同的多个注解用到各个类中,会相当啰嗦.这就是所谓的模板代码,是Spring设计原则中要消除的代码. 所谓元注解其实就是可以注解到别的注解上的注解,被注解的注解称之为组合注解,组合注解具备元注解的功能.Spring的很多注解都可以作为元注解,而且Sprin…
SpringSecurity核心功能:认证.授权.攻击防护(防止伪造身份) 涉及的依赖如下: <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-security</artifactId></dependency> <dependency> <groupId>org.springfram…
1. Spring Aware Spring的依赖注入的最大亮点就是你所有的Bean对Spring容器的存在是没有意识的.即你可以将你的容器替换成别的容器. 实际项目中,不可避免地会用到Spring容器本身的功能资源,这时的Bean必须意识到Spring容器的存在,才能调用Spring所提供的资源,这就是所谓的Spring Aware. Spring提供的Aware接口如下: BeanNameAware 获取到容器中Bean的名称 BeanFactoryAware 获得当前bean factor…
更多请关注公众号 Spring Data Jpa 简介 JPA JPA(Java Persistence API)意即Java持久化API,是Sun官方在JDK5.0后提出的Java持久化规范(JSR 338,这些接口所在包为javax.persistence,详细内容可参考https://github.com/javaee/jpa-spec)JPA的出现主要是为了简化持久层开发以及整合ORM技术,结束Hibernate.TopLink.JDO等ORM框架各自为营的局面.JPA是在吸收现有ORM…
一.条件注解@Conditional 在之前的学习中,通过活动的profile,我们可以获得不同的Bean.Spring4提供了一个更通用的基于条件的Bean的创建,即使用@Conditional注解. @Conditional根据满足某一个特定条件创建一个特定的Bean.比方说,当某一个jar包在一个类路径下的时候,自动配置一个或多个Bean:或者只有某个Bean被创建才会创建另外一个Bean.总的来说,就是根据特定条件来控制Bean的创建行为,这样我们可以利用这个特性进行一些自动的配置. 下…
一.计划任务 从Spring3.1开始,计划任务在Spring中的实现变得异常的简单.首先通过在配置类注解@EnableScheduling来开启对计划任务的支持,然后在执行计划任务的方法上注解@Scheduled,声明这是一个计划任务. Spring通过@Scheduled支持多种类型的计划任务,包括cron.fixDelay.fixRate等. 示例: 1.任务计划执行类 package com.ecworking.schedule; import org.springframework.s…
一.Spring Aware Spring 依赖注入的最大亮点就是你所有的 Bean 对 Spring容器的存在是没有意识的.即你可以将你的容器替换成其他的容器,如Google Guice,这时 Bean 之间的耦合度很低. 但在实际项目中,你不可避免的要用到Spring容器本身的功能资源,这时你的 Bean 必须要意识到Spring容器的存在,才能调用Spring所提供的资源,这就是所谓的 Spring Aware.其实 Spring Aware 本来就是 Spring 设计用来框架内部使用的…
外部配置 Spring Boot允许使用properties文件.yaml文件或者命令行参数作为外部配置 使用@Value注解,可以直接将属性值注入到你的beans中,并通过Spring的Environment抽象或绑定到结构化对象来访问. 以前使用Spring的时候需要通过@PropertySource指明properties文件位置,然后通过@value注入. 常规属性配置 在properties文件中增加几个属性 server.port=8081server.context-path=/d…
Spring Aware 在实际项目中,你不可避免的要用到spring容器本身的功能资源,这时你的bean要意识到spring容器的存在,才能调用spring提供的资源.spring aware本来就是spring设计用来框架内部使用的.若使用spring aware,你的Bean将会与srping框架耦合. 多线程 配置类 任务执行类 计划任务 条件注解@Conditional 组合注解 测试 拦截器…
一.多线程 Springt通过任务执行器(TaskExecutor)来实现多线程和并发编程.使用ThreadPoolTaskExecutor可实现一个基于线程池的TaskExecutor.而实际开发中任务一般是非阻碍的,即异步的,所以我们要在配置类中通过@EnableAsync 开启对异步任务的支持,并通过实际执行Bean的方法中使用@Async注解来声明其是一个异步任务. 示例: 1.配置类. package com.ecworking.async; import org.springfram…
转自:http://blog.163.com/mig3719@126/blog/static/285720652010950102575/ 9. DBMS提供的扩展功能 掌握了基本的关系模型原理和DBMS的数据类型,还需要对DBMS提供的扩展功能有所了解,才能充分运用DBMS进行数据库开发. 9.1. 控制流 SQL是说明式语言,但DBMS面对实际开发的需求,通常在SQL方言中都提供了过程式的扩展,包括(以T-SQL为例):1. 变量定义和赋值[code=sql] DECLARE @var <d…
SpringBoot学习笔记(2):用Spring Security来保护你的应用 快速开始 本指南将引导您完成使用受Spring Security保护的资源创建简单Web应用程序的过程. 参考资料: SpringSecurity中文参考文档:点击进入 IBM参考文档:点击进入 使用Maven进行构建 首先,设置一个基本的构建脚本.在使用Spring构建应用程序时,您可以使用任何您喜欢的构建系统,但此处包含了使用Maven所需的代码.如果您不熟悉Maven,请参阅使用Maven构建Java项目.…
以下内容,如有问题,烦请指出,谢谢 springboot出来也很久了,以前零散地学习了不少,不过很长时间了都没有在实际中使用过了,忘了不少,因此要最近准备抽时间系统的学习积累下springboot,给自己留个根. 因为以前学过一些,这里就主要根据官方文档来学习了,可能会根据自己的理解来选择一些知识点的学习顺序.官方文档地址:https://docs.spring.io/spring-boot/docs/1.5.8.RELEASE/reference/htmlsingle/ 官方文档有十个大章节,…
<SpringBoot实战>第一章节入门的名称为Spring风云再起 看起来Spring的功能确实受Java开发者喜爱 在SpringBoot中,继续将Spring框架做了另一次的封装使框架内代码模块更加简洁 [Original Spring] 原来的Spring : 假设你受命用Spring开发一个简单的Hello World Web应用程序.你该做什么? >> * 一个项目结构中,其中有一个包含必要依赖的Maven或者Gradle构建文件,最起码要有Spring MVC和 Se…
前两天晚上,正当我加班沉浸在敲代码的快乐中时,听到前桌的同事在嘀咕:Spring究竟是如何解决的循环依赖? 这让我想起最开始学Java的时候,掌握了一点基本语法和面向对象的一点皮毛.当时心里也是各种想法: 比如说面向切面是什么鬼?我面向我的对象还不够吗? 依赖注入是什么玩意儿?直接new一个不就行了吗...... 现在再回过头看当时觉得有点不知天高地厚了. 因为Spring中的循环依赖非常重要,一方面是源码中为了解决循环依赖做了很多处理,另一方面是面试中一旦问到Spring中比较高阶的问题,循环…
SpringBoot个人感觉比SpringMVC还要好用的一个框架,很多注解配置可以非常灵活的在代码中运用起来: springBoot学习笔记: .一.aop: 新建一个类HttpAspect,类上添加两个注解:@Aspect (这个是说明aop文件)@Component(这个加载到spring容器内), HttpAspect添加日志方法: @Before("execution(public * com.imooc.controller.GirlController.*(..))")p…
Springboot学习03-SpringMVC自动配置 前言 在SpringBoot官网对于SpringMVCde 自动配置介绍 1-原文介绍如下: Spring MVC Auto-configuration Spring Boot provides auto-configuration for Spring MVC that works well with most applications. The auto-configuration adds the following feature…
SpringBoot快速入门 https://spring.io/ 1. SpringBoot简介Spring Boot来简化Spring应用开发,约定大于配置,去繁从简,just run就能创建一个独立的.产品级别的应用. 背景: J2EE笨重的开发.繁多的配置.低下的开发效率.复杂的部署流程.第三方技术集成难度大. 解决: Spring 全家桶 时代Spring Boot ——> J2EE一站式解决方案 Spring Cloud ——> 分布式整体解决方案 优点:快速创建独立的Spring…
一.Spring Boot Spring是JavaEE轻量级代替品.无需开发重量级的(EJB),Spring为企业级Java开发提供了一种相对简单的方法,通过依赖注入和面向切面编程,用简单的POJO对象实现了EJB的功能.虽然Spring 的组件代码是轻量级的,但它的配置却是重量级的. SpringBoot 简化了基于Spring的应用开发,只需要 "run" 就能创建一个独立的.生产级别的Spring应用.SpringBoot为Spring平台及第三方库提供开箱即用的设置(提供默认设…
收集Spring Boot相关的学习资料,Spring Cloud点这里 推荐博客 纯洁的微笑 程序猿DD liaokailin的专栏 Spring Boot 揭秘与实战 系列 catoop的专栏 简书Spring Boot专题 方志朋Spring Boot 专栏 Spring-boot集成 推荐网站 Spring boot 官网 Spring Boot参考指南-中文版 Gradle 中文参考指南 慕课网视频 spring-boot-tutorials 开源书籍-微服务:从设计到部署 开源代码…
SpringBoot学习笔记(11):使用WebSocket构建交互式Web应用程序 快速开始 本指南将引导您完成创建“hello world”应用程序的过程,该应用程序在浏览器和服务器之间来回发送消息. WebSocket是一个非常薄,轻量级的TCP层.它使得非常适合使用“子协议”来嵌入消息.在本指南中,我们将深入研究并使用Spring的STOMP消息来创建交互式Web应用程序. 我们将建立一个服务用来接收一个携有用户名称的消息,然后作为回应,推送一个问候语到客户订阅的队列中. 本节内容的思维…
SpringBoot学习笔记(10):使用MongoDB来访问数据 快速开始 本指南将引导您完成使用Spring Data MongoDB构建应用程序的过程,该应用程序将数据存储在MongoDB(基于文档的数据库)中并从中检索数据.关于MongoDB的相关教程可以参考其官方文档或者笔者的相关教程,我们主要探讨在SpringBoot中快速开始MongoDB数据库服务的相关操作. 本节内容的思维导图大致如下: 参考教程: https://spring.io/guides/gs/accessing-d…
SpringBoot学习笔记(8):事物处理 快速入门 在传统的JDBC事务代码开发过程中,业务代码只有一部分,大部分都是与JDBC有关的功能代码,比如数据库的获取与关闭以及事务的提交与回滚.大量的try..catch..finally语句. Spring Boot利用AOP为我们提供了一个数据库事务的约定流程.通过这个约定流程就可以减少大量的冗余代码和一些没必要的异常捕获语句,让开发者更加集中于业务的开发,而不是反复编写如数据库的获取与关闭以及事务的提交与回滚.大量的try..catch..f…
SpringBoot 为我们提供了外网 Spring Initializr 网页版来帮助我们快速搭建 SpringBoot 项目,如果你不想用 IDEA 中的插件,这种方式也是不错的选择.闲话少说,直接开始我们的搭建操作! 记得第一次学习的时候访问 Spring Initializr地址 https://start.spring.io/ 是如下图所示的样子: 当时最新的版本是 2.1.0.RELEASE,仅仅几个月的时间 https://start.spring.io/ 就是如下图的模样了 个人…
SpringBoot学习笔记:动态数据源切换 数据源 Java的javax.sql.DataSource接口提供了一种处理数据库连接的标准方法.通常,DataSource使用URL和一些凭据来建立数据库连接. SpringBoot默认提供了针对内存数据库的数据源,如H2.hqldb.Derby等. 配置数据源信息 当我们引入spring-boot-start-jdbc时,SpringBoot会默认使用其绑定的Tomcat-JDBC的数据源. DataSource可由spring.datasour…