-
点睛spring4.1
快速点睛式学习spring 4.1各个知识
最近更新文章
19.1 groovy dsl
spring 4.x的一个新特性是使用groovy的语言来配置spring的bean;
这意味着我们构造一个spring的bean又多了一种方式,包括如下:
xml配置
java config(@bean)
@component,@service,@repository,@controller系列
groovy dsl
19.2 示例
...
18.1 meta annotation
元注解:顾名思义,就是注解的注解
当我们某几个注解要在多个地方重复使用的时候,写起来比较麻烦,定义一个元注解可以包含多个注解的含义,从而简化代码
下面我们用<<02点睛spring4.1-java config>>里的源码进行元注解的改造
18.2 示例
18.2.1 spring注解分析
我们看看spring ...
17.1 @conditional
@conditional为按照条件配置spring的bean提供了支持,即满足某种条件下,怎么配置对应的bean;
应用场景
当某一个jar包在classpath中的时候,配置某几个bean;
当某一个bean配置好后,会自动配置一个特定的bean;
当某种环境变量被设置后,创建某个bean;
@conditional为敏捷开发所提倡的原 ...
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
...
14.1 scripting脚本编程
脚本语言和java这类静态的语言的主要区别是:脚本语言无需编译,源码直接可运行;
如果我们经常需要修改的某些代码,每一次我们至少要进行编译,打包,重新部署的操作,步骤相当麻烦;
如果我们的应用不允许重启,这在现实的情况中也是很常见的;
在spring中使用脚本编程给上述的应用场景提供了欧洲杯足彩官网的解决方案,即动态加载bean;
spring支持脚本语言包含j ...
13.1 spring el
spring el-spring表达式语言,支持在xml和注解中使用表达式,类似jsp的el表达式语言;
本教程关注于在注解中使用spring el;
spring el包含很多类型的表达式,本教程关注常用的注入
获得系统属性
注入表达式
注入文件
注入其他bean或者其属性
注入properties文件属性
注入普通字符
13.2 ...
12.1 aware
我们设计的准则是解耦,这就意味着我们不能对spring的ioc容器有直接的依赖,但是我们还是想我们的bean能识别容器的资源;
使用aware能让我们在应用的任意位置获得spring容器的资源;
我们通过实现aware接口来识别spring容器的资源;
spring包含的aware有:
beannameaware
beanfactoryaware
appl ...
11.1 propert editor
property editor是javabeans api的一项特性,用来字符和属性值之间的互相转换(如2014-03-02和date类型的互相转换)
spring内置了customdateeditor, customnumbereditor, classeditor, fileeditor, localeeditor, stringarraypro ...
10.1 application event
spring使用application event给bean之间的消息通讯提供了手段
应按照如下部分实现bean之间的消息通讯
继承applicationevent类实现自己的事� ...
9.1 aop
aop可以了让一组类共享相同的行为.在oop中只能通过继承类和实现接口,这样使代码的耦合度增强,且类继承只能为单继承,阻碍更多行为添加到一组类上;
下面演示一个日志系统的实现,简单但不失表达aop的核心内容
演示通过注解拦截和通过方法规则拦截;
一些小术语
joinpoint:你需要拦截的代码位置(代码里已标识)
pointcut:符合某个条件后需要执行的 ...
8.1 profile
profile让在不同环境下使用不同的配置提供了支持(如开发环境下的配置和生产环境下的配置肯定是不同的,如:数据库的配置);
通过设定environment的activeprofiles来设定当前context需要使用的配置环境
通过设定jvm的spring.profiles.active参数来设置配置环境(web项目中设置在servlet的context pa ...
7.1 beanpostprocessor
spring通过beanpostprocessor接口可以对所有bean或者指定的某些bean的初始化前后对bean的检查或者修改提供支持;
使用postprocessbeforeinitialization和postprocessafterinitialization对bean进行操作;
postprocessbeforeinitializ ...
6.1 initialization和destruction
spring对bean初始化的时候和销毁时候进行某些操作提供了支持
利用@bean的initmethod和destroymethod(和xml配置的init-method和destory-method相同)
利用jsr-250的@postconstruct和@predestroy
6.2 示例
6.2.1 ...
5.1 reloadableresourcebundlemessagesource
使用reloadableresourcebundlemessagesource可获得不同语言的配置
此处是全局配置,适合用@bean声明
5.2 示例
5.2.1 新建英文messagesmessages_en_us.properties
wisely.name = wyf
wisely
4.1 resource
spring用来调用外部资源数据的方式
支持调用文件或者是网址
在系统中调用properties文件可参考<<02点睛spring4.1-java config>>中结合@propertysource和environment来使用
也可以使用@value来注入资源,@value的使用将在<<13点睛spring4.1-spr ...
3.1 scope
scope描述spring容器是怎么样新建类的实例的(bean);
在spring中默认的scope是singleton,这意味着无论你在程序中多少地方使用这个bean,它们都共享唯一个实例;
spring内置的scope有如下几个:
singleton:一个spring容器中只有一个bean的实例;
prototype:每次调用新建一个bean的实例;
re ...
2.1 java config
spring的java config主要使用@configuration和@bean两个注解;
使用@configuration注解在类上声明是一个配置类(相当于一个spring的配置xml);
使用@bean注 ...
1.1 声明bean
使用上例建立的testmavenspring项目,将pom.xml文件中的 3.2.3.release 修改为4.1.5.release, 然后项目->右键->maven->update project;
spring利用@ ...
0.1 前置条件
spring 4.1提倡基于java config和注解的配置,所以本教程通篇不会采用任何和xml配置相关的内容;
本教程默认读者有一定的java web及spring使用基础;
本教程采用点睛的形式展现spring各个知识点,不会深入到各个知识点的方方面面,目的是为了初学者快速掌握spring的各方面知识;
spring的官方开发的示例都使用maven和gradle ...
- 专栏创建者:wiselyman
- 创建时间:2015-05-12 13:52:52
- 专栏文章数:20篇
- 专栏被浏览:80746 次
本专栏热门文章
最新评论
博主你好。如果groovy的代码保存在数据库里,不是文件里,这样怎么搞
readxuxuegang 评论了
readxuxuegang 评论了
在注入配置文件时,输出的是乱码? 通过 public static propertysourcespl ...
a198720 评论了
a198720 评论了
博主你好。请教个问题,在执行context close()之前,如何释放threadpoolasync ...
高桌子矮板凳 评论了
高桌子矮板凳 评论了
高桌子矮板凳 写道博主你好。用你的例子,我测试的结果:打印的都是ok嘛。不知道什么情况部分输出如下:信 ...
高桌子矮板凳 评论了
高桌子矮板凳 评论了
博主你好。用你的例子,我测试的结果:打印的都是ok嘛。不知道什么情况部分输出如下:信息: pre-in ...
高桌子矮板凳 评论了
高桌子矮板凳 评论了
superwanwan 写道飞哥,我又来看你拉!!tttddd
senyzzm 评论了
senyzzm 评论了
飞哥,我又来看你拉!!
superwanwan 评论了
superwanwan 评论了
superwanwan 写道飞哥,你好,猜猜我是谁皖,还装
wiselyman 评论了
wiselyman 评论了
飞哥,你好,猜猜我是谁
superwanwan 评论了
superwanwan 评论了
fondawu 写道写的很好,赞一个 但也发现个小问题:7.2.2.3例子中public object ...
wiselyman 评论了
wiselyman 评论了