如何在spring中配置定时任务

如何在spring中配置定时任务,第1张

一、在webxml文件中进行如下配置:

<context-param>

<param-name>contextConfigLocation</param-name>

<param-value>

/WEB-INF/classes/applicationContext-xml

</param-value>

</context-param>

那么需要在工程下创建一个以applicationContext- 为开头的xml文件eg:applicationContext-jobconfigxml

xml的头和结尾部分跟其他spring配置文件相似,就不赘述,正文如下:

<bean id="youJobName(类别名)" class="comYourJobClassLocation(类的定位)" />

<bean id="doYourJob(别名)" class="orgspringframeworkschedulingquartzMethodInvokingJobDetailFactoryBean">

<property name="targetObject">

<ref bean="youJobName(类别名)""/>

</property>

<property name="targetMethod">

<value>runMethodName(定时执行的方法名)</value>

</property>

</bean>

<bean id="youJobNameTrigger(触发器别名)" class="orgspringframeworkschedulingquartzCronTriggerBean">

<property name="jobDetail">

<ref bean="doYourJob(别名)""/>

</property>

<property name="cronExpression">

<value>0 0/20 (定时的时间配置)</value>

</property>

</bean>

<bean id="doScheduler" class="orgspringframeworkschedulingquartzSchedulerFactoryBean">

<property name="triggers">

<list>

<ref local="youJobNameTrigger(触发器别名)"/>

</list>

</property>

</bean>

这样的配置几本就可以运转了,但是有一个地方可能是你需要根据你的需求来确定的,那就是触发时间。

下面有一些关于时间配置的说明:

<value>0 0/20 </value>

按顺序 <value> 秒 分 小时 日期 月份 星期 年 </value>

字段顺序

允许值

允许的特殊字符

0-59

, - /

0-59

, - /

小时

0-23

, - /

日期

1-31

, - / L W C

月份

1-12 或者 JAN-DEC

, - /

星期

1-7 或者 SUN-SAT

, - / L C #

年(可选)

留空, 1970-2099

, - /

The '' character is used to specify all values For example, "" in the minute field means "every minute"

“”字符被用来指定所有的值。如:”“在分钟的字段域里表示“每分钟”。

The

'' character is allowed for the day-of-month and day-of-week fields

It is used to specify 'no specific value' This is useful when you need

to specify something in one of the two fileds, but not the other See

the examples below for clarification

“”字符只在日期域和星期域中使用。它被用来指定“非明确的值”。当你需要通过在这两个域中的一个来指定一些东西的时候,它是有用的。看下面的例子你就会明白。

月份中的日期和星期中的日期这两个元素时互斥的一起应该通过设置一个问号()来表明不想设置那个字段

The '-' character is used to specify ranges For example "10-12" in the hour field means "the hours 10, 11 and 12"

“-”字符被用来指定一个范围。如:“10-12”在小时域意味着“10点、11点、12点”。

The

',' character is used to specify additional values For example

"MON,WED,FRI" in the day-of-week field means "the days Monday,

Wednesday, and Friday"

“,”字符被用来指定另外的值。如:“MON,WED,FRI”在星期域里表示”星期一、星期三、星期五”

The

'/' character is used to specify increments For example "0/15" in the

seconds field means "the seconds 0, 15, 30, and 45" And "5/15" in the

seconds field means "the seconds 5, 20, 35, and 50" Specifying ''

before the '/' is equivalent to specifying 0 is the value to start with

Essentially, for each field in the expression, there is a set of

numbers that can be turned on or off For seconds and minutes, the

numbers range from 0 to 59 For hours 0 to 23, for days of the month 0

to 31, and for months 1 to 12 The "/" character simply helps you turn

on every "nth" value in the given set Thus "7/6" in the month field

only turns on month "7", it does NOT mean every 6th month, please note

that subtlety

"/"字符用来指定渐增的值。例如0/15出现在秒字段的时候意味着“在第0,15,30和45秒”(的时候被触发)。而5/15出现在秒字段的时候意味着“在第5,20,35和第50秒”(的时候被触发)。"/"和"0/"的指定是等价的。

注:当分子+分母的值大于该字段的最大值,如在秒钟字段出现45/20的时候,表示在第45秒以后的每20会触发一次,但是20秒以后又算做另外的时间段以内了,所以该字段的/20即失效,如改为45/10 则只有 第45 和55秒会执行一次。

The

'L' character is allowed for the day-of-month and day-of-week fields

This character is short-hand for "last", but it has different meaning in

each of the two fields For example, the value "L" in the day-of-month

field means "the last day of the month" - day 31 for January, day 28 for

February on non-leap years If used in the day-of-week field by itself,

it simply means "7" or "SAT" But if used in the day-of-week field

after another value, it means "the last xxx day of the month" - for

example "6L" means "the last friday of the month" When using the 'L'

option, it is important not to specify lists, or ranges of values, as

you'll get confusing results

L是‘last’的省略写法可以表示day-of-month和day-of-week域,但在两个字段中的意思不同,例如day-of-month域中表示一个月的最后一天,

如果在day-of-week域表示‘7’或者‘SAT’,如果在day-of-week域中前面加上数字,它表示一个月的最后几天,例如‘6L’就表示一个月的最后一个

星期五,

The

'W' character is allowed for the day-of-month field This character is

used to specify the weekday (Monday-Friday) nearest the given day As an

example, if you were to specify "15W" as the value for the day-of-month

field, the meaning is: "the nearest weekday to the 15th of the month"

So if the 15th is a Saturday, the trigger will fire on Friday the 14th

If the 15th is a Sunday, the trigger will fire on Monday the 16th If

the 15th is a Tuesday, then it will fire on Tuesday the 15th However if

you specify "1W" as the value for day-of-month, and the 1st is a

Saturday, the trigger will fire on Monday the 3rd, as it will not 'jump'

over the boundary of a month's days The 'W' character can only be

specified when the day-of-month is a single day, not a range or list of

days

The 'L' and 'W' characters can also be combined for the

day-of-month expression to yield 'LW', which translates to "last weekday

of the month"

The '#' character is allowed for the day-of-week

field This character is used to specify "the nth" XXX day of the

month For example, the value of "6#3" in the day-of-week field means

the third Friday of the month (day 6 = Friday and "#3" = the 3rd one in

the month) Other examples: "2#1" = the first Monday of the month and

"4#5" = the fifth Wednesday of the month Note that if you specify "#5"

and there is not 5 of the given day-of-week in the month, then no firing

will occur that month

The 'C' character is allowed for the

day-of-month and day-of-week fields This character is short-hand for

"calendar" This means values are calculated against the associated

calendar, if any If no calendar is associated, then it is equivalent to

having an all-inclusive calendar A value of "5C" in the day-of-month

field means "the first day included by the calendar on or after the

5th" A value of "1C" in the day-of-week field means "the first day

included by the calendar on or after sunday"

关于cronExpression的介绍:

 

字段 允许值 允许的特殊字符

秒 0-59 , - /

分 0-59 , - /

小时 0-23 , - /

日期 1-31 , - / L W C

月份 1-12 或者 JAN-DEC , - /

星期 1-7 或者 SUN-SAT , - / L C #

年(可选) 留空, 1970-2099 , - /

表达式意义

"0 0 12 " 每天中午12点触发

"0 15 10 " 每天上午10:15触发

"0 15 10 " 每天上午10:15触发

"0 15 10 " 每天上午10:15触发

"0 15 10 2005" 2005年的每天上午10:15触发

"0 14 " 在每天下午2点到下午2:59期间的每1分钟触发

"0 0/5 14 " 在每天下午2点到下午2:55期间的每5分钟触发

"0 0/5 14,18 " 在每天下午2点到2:55期间和下午6点到6:55期间的每5分钟触发

"0 0-5 14 " 在每天下午2点到下午2:05期间的每1分钟触发

"0 10,44 14 3 WED" 每年三月的星期三的下午2:10和2:44触发

"0 15 10 MON-FRI" 周一至周五的上午10:15触发

"0 15 10 15 " 每月15日上午10:15触发

"0 15 10 L " 每月最后一日的上午10:15触发

"0 15 10 6L" 每月的最后一个星期五上午10:15触发

"0 15 10 6L 2002-2005" 2002年至2005年的每月的最后一个星期五上午10:15触发

"0 15 10 6#3" 每月的第三个星期五上午10:15触发

每天早上6点

0 6

每两个小时

0 /2

晚上11点到早上7点之间每两个小时,早上八点

0 23-7/2,8

每个月的4号和每个礼拜的礼拜一到礼拜三的早上11点

0 11 4 1-3

1月1日早上4点

0 4 1 1

quartz的高级特性不仅如此

1 数据库存储

2 集群支持

3 数据库持久化任务,trigger

4 trigger 的停止,运行

5 任务的任意添加

6 比corntrigger 更详尽的任务安排

7 线程的内部数据交换

春天 spring [spriŋ]

孟 [仲; 季]春:the first [second; last] month of spring。

温暖如春:as warm as spring

大地回春:Spring returns to the earth或者 Spring is here again

2、夏天 summer ['sʌmə]

初夏:early summer。

度夏 :pass [spend] the summer

一燕不成夏:One swallow does not make a summer

3、秋天 autumn [ˈɔ:təm]

深秋:late autumn;

在初秋:in early autumn;麦秋:time for the wheat harvest

4、冬天 winter ['wintə]

冬天不知不觉地来临:Winter creeps on

冬天来了, 春天还会远吗:If winter comes, can spring be far behind

扩展资料:

词语解析:

一、spring

1、读音:

英 [sprɪŋ]美 [sprɪŋ]

2、音译:

v跳;蹦;发源于;来自;给…装上软垫;翘曲;付账;突然发现

n春天;弹簧;发条;跳跃;泉;翘曲;倒缆

3、例句:

So let's step back to spring of 1999

首先,让我们把时钟拨回到1999年春天。

二、summer

1、读音:

英 [ˈsʌmə]美 [ˈsəmər]

2、音译:

n夏;大梁

v避暑

3、例句:

the plant flowers in late summer

这种植物在夏末开花

三、autumn

1、读音:

英 [ˈɔːtəm]美 [ˈɔdəm]

2、音译:

n秋季

3、例句:

the countryside is ablaze with colour in autumn

秋天乡间熠熠生彩

四、fall

1、读音:

英 [fɔːl]美 [fɔl]

2、音译:

v落下;掉落;跌落;跌倒;减少;下降;减弱;沦陷;被攻陷;进入某种状态;变成;成为;被归类;被排列

n落下;掉落;跌落;坍塌;倒下;跌倒;降落物;下降;减弱;减少;减退;失败;垮台;秋天

3、例句:

bombs could be seen falling from the planes

人们可以看到炸弹从飞机上落下的情况

五、winter

1、读音:

英 [ˈwɪntə]美 [ˈwɪn(t)ər]

2、音译:

n冬

adj冬季才成熟的

v在某处过冬

3、例句:

the tree has a good crop of berries in winter

这树在冬季能产大量的浆果

42 8

下一条回答

沪江网校,全国知名的外语学习平台

沪江网校全国知名外语学习网站,随时随地学习,免费试听课程!来沪江网校学外语,更有

上海互加文化传播有限公司广告

vip在线英语 少儿4-12岁少儿英语,北美外教一对一,

“母语式”语言环境,高频次互动,锻炼孩子在不同的学科和情境中学习英语!

刘涛代言

北美外教

免费试听

北京大米未来科技有限公司广告

1条评论

别白看,评论几句再走~

发布

萌萌丶萌萌哒丶

2018-11-13 18:39 · 回复Ta

为您推荐

春夏秋冬的英文怎么读?

1、春:Spring 英 [sprɪŋ] 美 [sprɪŋ] n春季;泉水,小溪;弹簧,弹性;跳跃 vi跳,跃;突然发出或出现;发源;劈开,裂开 vt突然跳出;跳过;使开裂 adj春天的;弹簧的,有弹性的 2、夏:Summer 发音:英[ˈsʌmə(r)] 美[ˈsʌmɚ] n 夏季;全盛时期 vi 避暑;过夏天 adj 夏季的 n (Summer)人名;(德)祖默;(英)萨默 3、秋:Autumn 发音: 英[ˈɔ:təm] 美[ˈɔtəm] n 秋天;成熟期;渐衰期,凋落期 adj 秋天的,秋季的 n (Autumn)人名;(英)奥特姆 4、冬:Winter 发音:英[ˈwɪntə(r)] 美[ˈwɪntɚ] n 冬季;年岁;萧条期 vi 过冬 adj 冬天的;越冬的 n (Winter)人名;(英、德、匈、罗、捷、西、芬、瑞典、法)温特 扩展资料 例句 1一年春夏秋冬四季构成一个循环。 The seasons of the year spring, summer, autumn and winter make a cycle 2我经历了六十个春夏秋冬的四季变化。 I went through sixty four seasons of spring and autumn and winter 3一年有四个季节:春夏秋冬。这四个季节循环交替、运行不止,没有尽头。 Spring and Summer, Autumn and Winter; these four seasons revolve without end 4汉生:在春夏秋冬之中,我最喜欢北京的秋天。 Han Sheng: In spring summer autumn and winter, I like Beijing's autumn best 5春夏秋冬是快乐的季节,他们都有喜欢他们的特别的朋友。 Spring summer full winter are happy seasons, they all have special friends who love them

17 浏览2535 2018-08-21

春夏秋冬用英语怎么说

spring,summer,autumn,winter

293 浏览17795 2018-03-20

春夏秋冬的英语单词怎么写

春天spring 英 [sprɪŋ] 美 [sprɪŋ] 夏天summer 英 ['sʌmə(r)] 美 [ˈsʌmɚ] 秋天 autum 英 ['ɔ:təm] 美 [ˈɔtəm] 冬天 winter 英 ['wɪntə(r)] 美 [ˈwɪntɚ] 用地道英语生动表达春夏秋冬四季的变化 1春天 Spring Fresh as a daisy 形容人或物精神饱满,面目清新 例句:After a good rest, she’s fresh as a daisy 一段时间休息后,她精力饱满。 No spring chicken 意思是指“年龄大了,不再年轻了” 例句:He shouldn’t try these breakdance moves - he’s no spring chicken anymore 他不应该尝试这些街舞动作,毕竟年纪不小了。 Spring into life 形容勃然而起,突然活跃了起来 例句:The parties always spring into life when Johnny arrives 所有派对只要Johnny 一到场,气氛一下子就活跃起来了。 2夏季 Summer The dog days of summer 夏季最热的一段时间,一般指7月到8月之间的几个星期。 例句:During the dog days of summer, the best thing to do is stay by the pool 夏天最热的时候,最好的办法就是在游泳池里呆着。 Indian summer 这是汉语里常说的“秋老虎” 例句:We all enjoyed the Indian summer, because wewere able to go to the beach in October 我们都喜欢“秋老虎”,因为可以在10月份还能到沙滩玩。 Soak up the sun 意思是“晒太阳,度假休闲” 例句:Sandra went away to Spain for two weeks to soak up the sun on the beach Sandra 去西班牙度假两周,好好晒晒太阳,休息一下。 3秋季 Autumn To turn over a new leaf 意思是“重新开始,洗心革面,改过自新” 例句: She has learnt her lesson and turned over a new leaf in her life 她接受教训,开始了生活的新篇章。 Autumn years 晚年 例句:In his autumn years, Sam had more time to spend on his garden Sam 晚年大部分时间都在培育他原子里的花草树木。 4冬季 Winter Snowed under 意思是“太多的工作,形容忙得不可开交” 例句:With the tax year ending, I’ve been snowed under with work 眼看这个税收年就要结束,我的工作特别多,忙得不得了。 Skate on thin ice 形容“处境危险,如履薄冰” 例句:You should focus more on your job - you are skating on thin ice你得好好做工作,否则你的情况挺危险的。 Put something on ice 意思是“暂停搁置某项目或活动” 例句:Peter decided to put the project on ice while he finishes his degreePeter决定暂停他的项目,他需要先完成他的学业。

9 浏览1728 2018-07-17

春夏秋冬的英文是什么?

Spring 春 summer 夏 autumn 秋 winter冬

2229 浏览40916 2018-01-02

春夏秋冬英文怎么念?

春夏秋冬 [**中]Another Year 春: spring [英音][sprɪŋ] 夏:summer [英音]['sʌmə] 秋:autumn [英音][ˈɔ:təm] 冬:winter [英音]['wɪntə] : The seasons of the year spring, s

Spring是一个开源框架,Spring是于2003 年兴起的一个轻量级的Java 开发框架,由Rod Johnson 在其著作Expert One-On-One J2EE Development and Design中阐述的部分理念和原型衍生而来。它是为了解决企业应用开发的复杂性而创建的。框架的主要优势之一就是其分层架构,分层架构允许使用者选择使用哪一个组件,同时为 J2EE 应用程序开发提供集成的框架。Spring使用基本的JavaBean来完成以前只可能由EJB完成的事情。然而,Spring的用途不仅限于服务器端的开发。从简单性、可测试性和松耦合的角度而言,任何Java应用都可以从Spring中受益。Spring的核心是控制反转(IoC)和面向切面(AOP)。简单来说,Spring是一个分层的JavaSE/EEfull-stack(一站式) 轻量级开源框架。

111 Spring是什么

Spring是一个开源的轻量级Java SE(Java 标准版本)/Java EE(Java

企业版本)开发应用框架,其目的是用于简化企业级应用程序开发。应用程序是由一组相互协作的对象组成。而在传统应用程序开发中,一个完整的应用是由一组相互协作的对象组成。所以开发一个应用除了要开发业务逻辑之外,最多的是关注如何使这些对象协作来完成所需功能,而且要低耦合、高内聚。业务逻辑开发是不可避免的,那如果有个框架出来帮我们来创建对象及管理这些对象之间的依赖关系。可能有人说了,比如“抽象工厂、工厂方法设计模式”不也可以帮我们创建对象,“生成器模式”帮我们处理对象间的依赖关系,不也能完成这些功能吗?可是这些又需要我们创建另一些工厂类、生成器类,我们又要而外管理这些类,增加了我们的负担,如果能有种通过配置方式来创建对象,管理对象之间依赖关系,我们不需要通过工厂和生成器来创建及管理对象之间的依赖关系,这样我们是不是减少了许多工作,加速了开发,能节省出很多时间来干其他事。Spring框架刚出来时主要就是来完成这个功能。

Spring框架除了帮我们管理对象及其依赖关系,还提供像通用日志记录、性能统计、安全控制、异常处理等面向切面的能力,还能帮我管理最头疼的数据库事务,本身提供了一套简单的JDBC访问实现,提供与第三方数据访问框架集成(如Hibernate、JPA),与各种Java

EE技术整合(如Java Mail、任务调度等等),提供一套自己的web层框架Spring

MVC、而且还能非常简单的与第三方web框架集成。从这里我们可以认为Spring是一个超级粘合平台,除了自己提供功能外,还提供粘合其他技术和框架的能力,从而使我们可以更自由的选择到底使用什么技术进行开发。而且不管是JAVA

SE(C/S架构)应用程序还是JAVA EE(B/S架构)应用程序都可以使用这个平台进行开发。让我们来深入看一下Spring到底能帮我们做些什么?

112 Spring能帮我们做什么

Spring除了不能帮我们写业务逻辑,其余的几乎什么都能帮助我们简化开发:

一、传统程序开发,创建对象及组装对象间依赖关系由我们在程序内部进行控制,这样会加大各个对象间的耦合,如果我们要修改对象间的依赖关系就必须修改源代码,重新编译、部署;而如果采用Spring,则由Spring根据配置文件来进行创建及组装对象间依赖关系,只需要改配置文件即可,无需重新编译。所以,Spring能帮我们根据配置文件创建及组装对象之间的依赖关系。

二、当我们要进行一些日志记录、权限控制、性能统计等时,在传统应用程序当中我们可能在需要的对象或方法中进行,而且比如权限控制、性能统计大部分是重复的,这样代码中就存在大量重复代码,即使有人说我把通用部分提取出来,那必然存在调用还是存在重复,像性能统计我们可能只是在必要时才进行,在诊断完毕后要删除这些代码;还有日志记录,比如记录一些方法访问日志、数据访问日志等等,这些都会渗透到各个要访问方法中;还有权限控制,必须在方法执行开始进行审核,想想这些是多么可怕而且是多么无聊的工作。如果采用Spring,这些日志记录、权限控制、性能统计从业务逻辑中分离出来,通过Spring支持的面向切面编程,在需要这些功能的地方动态添加这些功能,无需渗透到各个需要的方法或对象中;有人可能说了,我们可以使用“代理设计模式”或“包装器设计模式”,你可以使用这些,但还是需要通过编程方式来创建代理对象,还是要耦合这些代理对象,而采用Spring

面向切面编程能提供一种更好的方式来完成上述功能,一般通过配置方式,而且不需要在现有代码中添加任何额外代码,现有代码专注业务逻辑。所以,Spring

面向切面编程能帮助我们无耦合的实现日志记录,性能统计,安全控制。

三、在传统应用程序当中,我们如何来完成数据库事务管理?需要一系列“获取连接,执行SQL,提交或回滚事务,关闭连接”,而且还要保证在最后一定要关闭连接,多么可怕的事情,而且也很无聊;如果采用Spring,我们只需获取连接,执行SQL,其他的都交给Spring来管理了,简单吧。所以,Spring能非常简单的帮我们管理数据库事务。

四、Spring还提供了与第三方数据访问框架(如Hibernate、JPA)无缝集成,而且自己也提供了一套JDBC访问模板,来方便数据库访问。

五、Spring还提供与第三方Web(如Struts、JSF)框架无缝集成,而且自己也提供了一套Spring MVC框架,来方便web层搭建。

六、Spring能方便的与Java EE(如Java Mail、任务调度)整合,与更多技术整合(比如缓存框架)。

Spring能帮我们做这么多事情,提供这么多功能和与那么多主流技术整合,而且是帮我们做了开发中比较头疼和困难的事情,那可能有人会问,难道只有Spring这一个框架,没有其他选择?当然有,比如EJB需要依赖应用服务器、开发效率低、在开发中小型项目是宰鸡拿牛刀,虽然发展到现在EJB比较好用了,但还是比较笨重还需要依赖应用服务器等。那为何需要使用Spring,而不是其他框架呢?让我们接着往下看。

113 为何需要Spring

一 首先阐述几个概念

1、应用程序:是能完成我们所需要功能的成品,比如购物网站、OA系统。

2、框架:是能完成一定功能的半成品,比如我们可以使用框架进行购物网站开发;框架做一部分功能,我们自己做一部分功能,这样应用程序就创建出来了。而且框架规定了你在开发应用程序时的整体架构,提供了一些基础功能,还规定了类和对象的如何创建、如何协作等,从而简化我们开发,让我们专注于业务逻辑开发。

3、非侵入式设计:从框架角度可以这样理解,无需继承框架提供的类,这种设计就可以看作是非侵入式设计,如果继承了这些框架类,就是侵入设计,如果以后想更换框架之前写过的代码几乎无法重用,如果非侵入式设计则之前写过的代码仍然可以继续使用。

4、轻量级及重量级:轻量级是相对于重量级而言的,轻量级一般就是非入侵性的、所依赖的东西非常少、资源占用非常少、部署简单等等,其实就是比较容易使用,而重量级正好相反。

5、POJO:POJO(Plain Old Java

Objects)简单的Java对象,它可以包含业务逻辑或持久化逻辑,但不担当任何特殊角色且不继承或不实现任何其它Java框架的类或接口。

6、容器:在日常生活中容器就是一种盛放东西的器具,从程序设计角度看就是装对象的的对象,因为存在放入、拿出等操作,所以容器还要管理对象的生命周期。

7、控制反转:即Inversion of Control,缩写为IoC,控制反转还有一个名字叫做依赖注入(Dependency

Injection),就是由容器控制程序之间的关系,而非传统实现中,由程序代码直接操控。

8、Bean:一般指容器管理对象,在Spring中指Spring IoC容器管理对象。

为什么需要Spring及Spring的优点

非常轻量级的容器:以集中的、自动化的方式进行应用程序对象创建和装配,负责对象创建和装配,管理对象生命周期,能组合成复杂的应用程序。Spring容器是非侵入式的(不需要依赖任何Spring特定类),而且完全采用POJOs进行开发,使应用程序更容易测试、更容易管理。而且核心JAR包非常小,Spring305不到1M,而且不需要依赖任何应用服务器,可以部署在任何环境(Java

SE或Java EE)。

● AOP:AOP是Aspect Oriented

Programming的缩写,意思是面向切面编程,提供从另一个角度来考虑程序结构以完善面向对象编程(相对于OOP),即可以通过在编译期间、装载期间或运行期间实现在不修改源代码的情况下给程序动态添加功能的一种技术。通俗点说就是把可重用的功能提取出来,然后将这些通用功能在合适的时候织入到应用程序中;比如安全,日记记录,这些都是通用的功能,我们可以把它们提取出来,然后在程序执行的合适地方织入这些代码并执行它们,从而完成需要的功能并复用了这些功能。

简单的数据库事务管理:在使用数据库的应用程序当中,自己管理数据库事务是一项很让人头疼的事,而且很容易出现错误,Spring支持可插入的事务管理支持,而且无需JEE环境支持,通过Spring管理事务可以把我们从事务管理中解放出来来专注业务逻辑。

JDBC抽象及ORM框架支持:Spring使JDBC更加容易使用;提供DAO(数据访问对象)支持,非常方便集成第三方ORM框架,比如Hibernate等;并且完全支持Spring事务和使用Spring提供的一致的异常体系。

● 灵活的Web层支持:Spring本身提供一套非常强大的MVC框架,而且可以非常容易的与第三方MVC框架集成,比如Struts等。

● 简化各种技术集成:提供对Java Mail、任务调度、JMX、JMS、JNDI、EJB、动态语言、远程访问、Web Service等的集成。

Spring能帮助我们简化应用程序开发,帮助我们创建和组装对象,为我们管理事务,简单的MVC框架,可以把Spring看作是一个超级粘合平台,能把很多技术整合在一起,形成一个整体,使系统结构更优良、性能更出众,从而加速我们程序开发,有如上优点,我们没有理由不考虑使用它。

114 如何学好Spring

要学好Spring,首先要明确Spring是个什么东西,能帮我们做些什么事情,知道了这些然后做个简单的例子,这样就基本知道怎么使用Spring了。Spring核心是IoC容器,所以一定要透彻理解什么是IoC容器,以及如何配置及使用容器,其他所有技术都是基于容器实现的;理解好IoC后,接下来是面向切面编程,首先还是明确概念,基本配置,最后是实现原理,接下来就是数据库事务管理,其实Spring管理事务是通过面向切面编程实现的,所以基础很重要,IoC容器和面向切面编程搞定后,其余都是基于这俩东西的实现,学起来就更加轻松了。要学好Spring不能急,一定要把基础打牢,基础牢固了,这就是磨刀不误砍柴工。

12 Spring基础

121 Spring架构图

图 1-1 Spring架构图

核心容器:包括Core、Beans、Context、EL模块。

Core模块:封装了框架依赖的最底层部分,包括资源访问、类型转换及一些常用工具类。

Beans模块:提供了框架的基础部分,包括反转控制和依赖注入。其中Bean

Factory是容器核心,本质是“工厂设计模式”的实现,而且无需编程实现“单例设计模式”,单例完全由容器控制,而且提倡面向接口编程,而非面向实现编程;所有应用程序对象及对象间关系由框架管理,从而真正把你从程序逻辑中把维护对象之间的依赖关系提取出来,所有这些依赖关系都由BeanFactory来维护。

● Context模块:以Core和Beans为基础,集成Beans模块功能并添加资源绑定、数据验证、国际化、Java

EE支持、容器生命周期、事件传播等;核心接口是ApplicationContext。

EL模块:提供强大的表达式语言支持,支持访问和修改属性值,方法调用,支持访问及修改数组、容器和索引器,命名变量,支持算数和逻辑运算,支持从Spring

容器获取Bean,它也支持列表投影、选择和一般的列表聚合等。

AOP、Aspects模块:

● AOP模块:Spring

AOP模块提供了符合 AOP Alliance规范的面向方面的编程(aspect-oriented

programming)实现,提供比如日志记录、权限控制、性能统计等通用功能和业务逻辑分离的技术,并且能动态的把这些功能添加到需要的代码中;这样各专其职,降低业务逻辑和通用功能的耦合。

● Aspects模块:提供了对AspectJ的集成,AspectJ提供了比Spring ASP更强大的功能。

数据访问/集成模块:该模块包括了JDBC、ORM、OXM、JMS和事务管理。

事务模块:该模块用于Spring管理事务,只要是Spring管理对象都能得到Spring管理事务的好处,无需在代码中进行事务控制了,而且支持编程和声明性的事物管理。

JDBC模块:提供了一个JBDC的样例模板,使用这些模板能消除传统冗长的JDBC编码还有必须的事务控制,而且能享受到Spring管理事务的好处。

ORM模块:提供与流行的“对象-关系”映射框架的无缝集成,包括Hibernate、JPA、Ibatiss等。而且可以使用Spring事务管理,无需额外控制事务。

OXM模块:提供了一个对Object/XML映射实现,将java对象映射成XML数据,或者将XML数据映射成java对象,Object/XML映射实现包括JAXB、Castor、XMLBeans和XStream。

● JMS模块:用于JMS(Java Messaging Service),提供一套

“消息生产者、消息消费者”模板用于更加简单的使用JMS,JMS用于用于在两个应用程序之间,或分布式系统中发送消息,进行异步通信。

Web/Remoting模块:Web/Remoting模块包含了Web、Web-Servlet、Web-Struts、Web-Porlet模块。

● Web模块:提供了基础的web功能。例如多文件上传、集成IoC容器、远程过程访问(RMI、Hessian、Burlap)以及Web

Service支持,并提供一个RestTemplate类来提供方便的Restful services访问。

Web-Servlet模块:提供了一个Spring MVC Web框架实现。Spring

MVC框架提供了基于注解的请求资源注入、更简单的数据绑定、数据验证等及一套非常易用的JSP标签,完全无缝与Spring其他技术协作。

Web-Struts模块:提供了与Struts无缝集成,Struts1x 和Struts2x都支持

Test模块:

Spring支持Junit和TestNG测试框架,而且还额外提供了一些基于Spring的测试功能,比如在测试Web框架时,模拟Http请求的功能。

122 典型应用场景

Spring可以应用到许多场景,从最简单的标准Java

SE程序到企业级应用程序都能使用Spring来构建。以下介绍几个比较流行的应用场景:

● 典型Web应用程序应用场景:

图1-2 web应用程序应用场景

在Web应用程序应用场景中,典型的三层架构:数据模型层实现域对象;数据访问层实现数据访问;逻辑层实现业务逻辑;web层提供页面展示;所有这些层组件都由Spring进行管理,享受到Spring事务管理、AOP等好处,而且请求唯一入口就是DispachterServlet,它通过把请求映射为相应web层组件来实现相应请求功能。

● 远程访问应用场景:

Spring能非常方便的提供暴露RMI服务,远程访问服务如Hessian、Burlap等,实现非常简单只需通过在Spring中配置相应的地址及需要暴露的服务即可轻松实现,后边会有介绍;

● EJB应用场景:

Spring也可以与EJB轻松集成,后边会详细介绍。

n

1 春季,春天[U][C]

2 旺盛时期;青春年少时期[U]

3 跳跃[C]

He rose with a spring and dashed out the door

他一跃而起,奔出门去。

4 弹簧[C]

5 弹力;活力[U][S]

There's little spring in this sofa

这张沙发几乎没什么弹性。

6 泉[P1]

7 根源,源泉[C]

Her vanity was the spring of her unhappiness

她的虚荣心是她不幸的起因。

8 动机[C]

vi

1 跳,跃

2 弹起,弹开,反弹

The lid sprang open

盖子啪地一声弹开了。

3 飞快地行动[(+to)]

He sprang to his feet and rushed out of the room

他跳起身奔出了房间。

4 突然出现,涌现[(+up)]

5 源(于),来(自)[(+from)]

A cry of anger sprang from the crowd

从人群中发出了愤怒的叫声。

6 一跃而成[(+into)]

7 迅速生长;很快产生

8 开裂,破裂

9 美请客[(+for)]

10 爆炸

vt

1 使弹起,使弹开

2 使弹成某种状况[O8]

He sprang the lock open

他开了锁。

3 突然提出(或作出)

Our regiment sprang a surprise attack on the enemy position

我团对敌人的阵地发动了一次突击。

4 使裂开

5 扭伤

6 给上发条

7 口花(钱)[(+for)]

She sprang fifty dollars for best sellers

她花五十元钱买畅销书。

8 使爆炸

有什么好书讲解spring框架的原理和用法的麽

入门推荐看《Spring入门经典》、《Spring实战第四版》、《Spring Boot实战》等

如果像继续深入理解可以看《看透Spring MVC:源代码分析与实践》、《Spring技术内幕:深入解析Spring架构与设计原理》等。

spring框架与无spring框架有什么区别?

spring的两大核心功能就是依赖注入DI和AOP,依赖注入实现的功能是不需要自己去new对象而是通过set方法注入,例如把DAO等注入到一个业务逻辑的类中来实现数据库操作,从而使类与类之间的联系更小,耦合度就小。AOP一般用于事务管理。spring功能很强大,如果不用的话可能实现以上功能很复杂的。

spring框架有什么用?

spring框架的作用就是让对象与对象(模块与模块)之间的关系没有通过代码来关联,都是通过配置类说明 管理的(Spring根据这些配置 内部通过反射去动态的组装对象) Spring是一个容器,凡是在容器里的对象才会有Spring所提供的这些服务和功能。

内部最核心的就是IOC了, 动态注入,让一个对象的创建不用new了,可以自动的生产,这其实就是利用java里的反射 反射其实就是在运行时动态的去创建、调用对象,Spring就是在运行时,跟xml  Spring的配置 文件来动态的创建对象,和调用对象里的方法的 。      Spring还有一个核心就是AOP这个就是面向切面编程,可以为某一类对象 进行监督和控制(也就是 在调用这类对象的具体方法的前后去调用你指定的 模块)从而达到对一个模块扩充的功能。

Spring框架是由于软件开发的复杂性而创建的。Spring使用的是基本的JavaBean来完成以前只可能由EJB完成的事情。然而,Spring的用途不仅仅限于服务器端的开发。从简单性、可测试性和松耦合性的角度而言,绝大部分Java应用都可以从Spring中受益。

目的:解决企业应用开发的复杂性

功能:使用基本的JavaBean代替EJB,并提供了更多的企业应用功能

范围:任何Java应用Spring是一个轻量级控制反转(IoC)和面向切面(AOP)的容器框架。

java spring框架有什么用

Spring的好处至少包括: 1, Spring能有效地组织你的中间层对象; 2, Spring能消除在许多工程中常见的对Singleton的过多使用; 3, 通过一种在不同应用程序和项目间一致的方法来处理配置文件,消除各种自定义格式的属性文件的需要

Spring框架IOC和AOP要怎么理解?, 简述你对Spring框架IOC和AOP的理解。

IoC就是对象的创建,依赖都由Spring及配置文件控制;AOP就是统一的给一些类似的方法加上同样的功能,比如日志,事务。

Spring 框架是一个分层架构,由 7 个定义良好的模块组成。Spring 模块构建在核心容器之上,核心容器定义了创建、配置和管理 bean 的方式。

组成 Spring 框架的每个模块(或组件)都可以单独存在,或者与其他一个或多个模块联合实现。

Spring 的应用程序中的对象提供了事务管理服务。通过使用 Spring AOP,不用依赖 EJB 组件,就可以将声明性事务管理集成到应用程序中。

Spring MVC 框架:MVC 框架是一个全功能的构建 Web 应用程序的 MVC 实现。通过策略接口,MVC 框架变成为高度可配置的,MVC 容纳了大量视图技术,其中包括 JSP、Velocity、Tiles、iText 和 POI。

Spring 框架的功能可以用在任何 J2EE 服务器中,大多数功能也适用于不受管理的环境。Spring 的核心要点是:支持不绑定到特定 J2EE 服务的可重用业务和数据访问对象。毫无疑问,这样的对象可以在不同 J2EE 环境 (Web 或 EJB)、独立应用程序、测试环境之间重用。

spring框架和hibernate框架有什么区别?那个更好一点?

hibernate帮你搞定对象和数据库的映射。

spring则帮你完成应用程序各部分的组装。

初学的话你可以把hibernate理解为代替你对数据库进行select insert update delete底层操作的框架。从而只需要对hibernate进行简单的配置就可以完成数据库之间的切换(从mysql切换到mssql,如果使用hibernate,则你不需要修改任何应用程序就,只需要修改hibernate的配置文件即可)。

spring你可以认为是一条把整个应用串联起来的线,比如你有个类,里面有个成员是一个“回叫的接口”,如果把这个程序给一只鸟用的话,需要实例化一只会叫的鸟,如果给一只狗则需要实例化一只会叫的狗。没有spring的情况下你需要修改源代码,把原本实例化鸟的地方实例化狗。当是用了spring就可以通过修改配置把一只鸟或者一直狗分配给这个成员变量。

正是由于这种特性,才使得spring成为轻量级架构中的核心框架,是实现应用分层机构的基础。

Java中的spring框架给详细讲讲

Spring是一个开源框架,Spring是于2003 年兴起的一个轻量级的Java 开发框架,由Rod Johnson 在其著作Expert One-On-One J2EE Development and Design中阐述的部分理念和原型衍生而来。它是为了解决企业应用开发的复杂性而创建的。框架的主要优势之一就是其分层架构,分层架构允许使用者选择使用哪一个组件,同时为 J2EE 应用程序开发提供集成的框架。Spring使用基本的JavaBean来完成以前只可能由EJB完成的事情。然而,Spring的用途不仅限于服务器端的开发。从简单性、可测试性和松耦合的角度而言,任何Java应用都可以从Spring中受益。Spring的核心是控制反转(IoC)和面向切面(AOP)。简单来说,Spring是一个分层的JavaSE/EEfull-stack(一站式) 轻量级开源框架。

欢迎分享,转载请注明来源:品搜搜测评网

原文地址:https://pinsoso.cn/meirong/3806591.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2024-03-23
下一篇2024-03-23

随机推荐

  • 妮维雅润肤霜能涂脸吗

    通过了解就会发现,妮维雅是可以涂脸的,由于质地比较厚重,为此可以混合精华一起使用,而且能够更好的被面部所吸收,才能够更好的达到美白的效果。妮维雅润肤霜能涂脸吗的问题之所以被人们所重视,主要是更好的让肌肤保持水分,让肌肤的状态变得更加轻盈透亮

    2024-04-15
    64900
  • 婴儿护肤品

    「导读」 宝宝也是可以使用护肤品的,只是在产品的选择上需要更加的谨慎而已,需要保护好宝宝皮肤表面的酸性保护膜并且保持宝宝皮肤的水分平衡。婴儿护肤品是指专门针对婴幼儿敏感肌肤研制,用于婴幼儿日常清洁、保护肌肤、预防溼疹、预防痱子等护理的产品。

    2024-04-15
    62800
  • 化妆品公司有哪几家

    国际知名化妆品品牌前十名有:兰蔻、雅诗兰黛、迪奥、资生堂、倩碧、海蓝之谜、SK2、香奈儿、赫莲娜、伊丽莎白雅顿。一、兰蔻兰蔻1935年诞生于法国,是由Armand Petitjean(阿曼达·珀蒂让)创办的品牌。作为全球知名的高端化妆品品牌

    2024-04-15
    55200
  • 精华露和精华液的区别(精华露和精华液的区别及使用)

    在护肤步骤中少不了要用到精华,平时我们在护肤中常听到精华露和精华液,这两者是一样的东西吗?下面来说一下精华露和精华液的区别及使用方法,希望对大家能有所帮助。 长久以来精华类的护肤品作用是十分明显的,很多人都非常喜欢这种产品。一般 而言精华类

    2024-04-15
    47900
  • 赋活沙漠肌骆驼套盒怎么样

    好。1、成分好。赋活沙漠肌骆驼套盒的主要成分为水,尿囊素,甘油,其成分很好。2、价格好。赋活沙漠肌骆驼套盒的售价为1389元,而其他同档次的护肤品套盒的价格在1527元以上,所以赋活沙漠肌骆驼套盒的价格很好。好。1、成分方面。卡尔曼尼虫草系

    2024-04-15
    39800
  • 清莹露和神仙水的区别

    1 清莹露清莹露 sk2清莹露怎么用sk2清莹露是属于清洁水,就是洗完脸,第一个用的,是给皮肤一个再次清洁的作用。 sk2清莹露用在神仙水之前,洁面后第一步,是SKII的化妆水,保湿,同时能起到二次清洁和细致皮肤的作用,帮助

    2024-04-15
    40100
  • MZC新肌修护精华液与精华油有什么区别吗?

    MZC新肌修护精华液和精华油的区别MZC新肌修护精华液和精华油都是护肤品中的一种,它们的作用都是滋润和修复肌肤。但是,它们的成分和使用方法有所不同。首先从成分上看,精华液的主要成分是水,它在质地上更加清爽轻盈,容易被皮肤吸收。而花梦花精华油

    2024-04-15
    47300

发表评论

登录后才能评论
保存