- 浏览: 2098742 次
- 性别:
- 来自: 合肥
-
最新评论
-
lhs472194266:
我在搜索是,面临一个问题,是用maven 将第三方jar包的s ...
如何在IntelliJ IDEA中检索maven依赖jar包的源码 -
淡炒番茄:
博主,你这个认证服务器是个单应用,作微服务、我要用几个认证服务 ...
Spring Cloud下基于OAUTH2认证授权的实现 -
lianghuado:
Spring4.0系列9-websocket简单应用 -
yangjianzhouctgu:
汪老师,你好,我想就spring boot测试方面的问题请教一 ...
Spring Boot使用自定义的properties -
dyj025:
wiselyman 写道dyj025 写道楼主源码访问不了.可 ...
Spring Cloud下基于OAUTH2认证授权的实现
文章列表
3.1 REST
REST:Representational State Transfer;
REST是一种数据导向web service,相对于SOAP是一种操作操作和处理导向的web service;
Spring为对REST的支持提供了@RestController;
在没有@RestController可以通过@Controller,@ResponseBody组合实现REST控制器;
但是我们经常会使用@ResponseBody这样很麻烦,且易忘记;
使用@RestController替代@Controller,我们就不用使用@ResponseBody;
RE ...
2.1 @RequestMapping
@RequestMapping是SpringMVC的核心注解,负责访问的url与调用方法之间的映射;
@RequestMapping可以放在类和方法上;
@RequestMapping的属性produces属性控制response返回的形式;
@RequestMapping的属性method属性控制接受访问的类型,不写不做限制,本例为演示方便全部都是get请求;
@ResponseBody(放在方法上或者返回值类型前)将方法参数放置在web body的body中(返回的不是页面而是你所控制的字符)
@RequestBody ...
1.1 简单示例
通篇使用java config
@Controller声明bean是一个控制器
@RequestMapping访问路径和方法之间的映射
1.2 演示
1.2.1 新建maven web项目
新建项目
19.1 Groovy DSL
Spring 4.x的一个新特性是使用Groovy的语言来配置Spring的bean;
这意味着我们构造一个spring的bean又多了一种方式,包括如下:
xml配置
java config(@Bean)
@Component,@Service,@Repository,@Controller系列
Groovy DSL
19.2 示例
19.2.1 演示类
package
18.1 Meta Annotation
元注解:顾名思义,就是注解的注解
当我们某几个注解要在多个地方重复使用的时候,写起来比较麻烦,定义一个元注解可以包含多个注解的含义,从而简化代码
下面我们用<<02点睛Spring4.1-Java Config>>里的源码进行元注解的改造
18.2 示例
18.2.1 spring注解分析
我们看看spring的@Service的源码:可看出@Service注解是由几个注解组合的包含@Component;
17.1 @Conditional
@Conditional为按照条件配置spring的bean提供了支持,即满足某种条件下,怎么配置对应的bean;
应用场景
当某一个jar包在classpath中的时候,配置某几个bean;
当某一个bean配置好后,会自动配置一个特定的bean;
当某种环境变量被设置后,创建某个bean;
@Conditional为敏捷开发所提倡的原则"习惯优于配置"提供了支持;
@Conditional是Spring Boot快速开发框架实现"习惯优于配置"的核心技术;
17.2 示例
演示在w ...
16.1 TaskScheduler
提供对计划任务提供支持;
使用@EnableScheduling开启计划任务支持
使用@Scheduled来注解计划任务的方法;
16.2 示例
演示后台间断执行任务和定时计划任务
16.2.1 计划任务的配置
@Configurat
15.1 TaskExecutor
spring的TaskExecutor为在spring环境下进行并发的多线程编程提供了支持;
使用ThreadPoolTaskExecutor可实现一个基于线程池的TaskExecutor;
使用@EnableAsync开启异步任务支持;
使用@Async注解方法是异步方法;
15.2 示例
15.2.1 声明taskExecutor
package
14.1 Scripting脚本编程
脚本语言和java这类静态的语言的主要区别是:脚本语言无需编译,源码直接可运行;
如果我们经常需要修改的某些代码,每一次我们至少要进行编译,打包,重新部署的操作,步骤相当麻烦;
如果我们的应用不允许重启,这在现实的情况中也是很常见的;
在spring中使用脚本编程给上述的应用场景提供了解决方案,即动态加载bean;
spring支持脚本语言包含JRuby,Groovy,BeanShell;
本例以spring主推的Groovy语言作为示例;
动态加载bean目前暂不支持java config(应该在spring4.2版本支持,参见:Add ...
13.1 Spring EL
Spring EL-Spring表达式语言,支持在xml和注解中使用表达式,类似jsp的EL表达式语言;
本教程关注于在注解中使用Spring EL;
Spring EL包含很多类型的表达式,本教程关注常用的注入
获得系统属性
注入表达式
注入文件
注入其他bean或者其属性
注入properties文件属性
注入普通字符
13.2 示例
13.2.1 编写Spring EL演示类
12.1 Aware
我们设计的准则是解耦,这就意味着我们不能对Spring的IoC容器有直接的依赖,但是我们还是想我们的bean能识别容器的资源;
使用aware能让我们在应用的任意位置获得spring容器的资源;
我们通过实现aware接口来识别spring容器的资源;
Spring包含的aware有:
BeanNameAware
BeanFactoryAware
ApplicationContextAware
MessageSourceAware
ApplicationEventPublisherAware
ResourceLoaderAware
实现A ...
11.1 Propert Editor
property editor是JavaBeans API的一项特性,用来字符和属性值之间的互相转换(如2014-03-02和Date类型的互相转换)
spring内置了CustomDateEditor, CustomNumberEditor, ClassEditor, FileEditor, LocaleEditor, StringArrayPropertyEditor
除了内置的property editor,如需自己定制额外的复杂情况继承JavaBeans API的PropertyEditorSupport类
11.2 示例
...
10.1 Application Event
Spring使用Application Event给bean之间的消息通讯提供了手段
应按照如下部分实现bean之间的消息通讯
继承ApplicationEvent类实现自己的事件
实现继承ApplicationListener接口实现监听事件
使用ApplicationContext发布消息
...
09点睛Spring4.1-AOP
- 博客分类:
- 点睛Spring4.1
9.1 AOP
AOP可以了让一组类共享相同的行为.在OOP中只能通过继承类和实现接口,这样使代码的耦合度增强,且类继承只能为单继承,阻碍更多行为添加到一组类上;
下面演示一个日志系统的实现,简单但不失表达AOP的核心内容
演示通过注解拦截和通过方法规则拦截;
一些小术语
JoinPoint:你需要拦截的代码位置(代码里已标识)
Pointcut:符合某个条件后需要执行的代码位置(代码里已标识)
9.2 示例
采取2种截获方式:拦截注解和拦截方法
8.1 Profile
Profile让在不同环境下使用不同的配置提供了支持(如开发环境下的配置和生产环境下的配置肯定是不同的,如:数据库的配置);
通过设定Environment的ActiveProfiles来设定当前context需要使用的配置环境
通过设定jvm的spring.profiles.active参数来设置配置环境(web项目中设置在servlet的context parameter中)
8.2 示例
8.2.1 新建测试bean