博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Spring-Context之一:一个简单的例子
阅读量:7251 次
发布时间:2019-06-29

本文共 3028 字,大约阅读时间需要 10 分钟。

很久之前就想系统的学习和掌握Spring框架,但是拖了很久都没有行动。现在趁着在外出差杂事不多,就花时间来由浅入深的研究下Spring框架。Spring框架这几年来已经发展成为一个巨无霸产品。从最初的只是用来作为依赖注入到现在已经是无法不包。其涉及的领域有依赖注入、MVC、JMS、Web flow、Batch job、Web service、Security…..几乎是涵盖了技术开发的所有方面。本人虽然从事Java语言开发时间不长,但是对Spring中的很多组件都有所涉猎,比如上面列出的那几个都有用过。可以说Spring是Java程序员必须要掌握的一个库。

现在Spring的最新的稳定版本是4.0.2,该版本中包含了大量的新特性,是比较重要的一次release。本系列将基本使用该版本进行讲解。

第一讲就用一个简单的例子开始吧,初步学会使用Spring-Context的依赖注入功能。

首先使用maven创建一个新的项目。

1
$: mvn archetype:generate

创建成功后在pom.xml文件中加入对Spring-Context的依赖。

pom.xml
1234567
org.springframework
spring-context
4.0.2.RELEASE

然后我们创建一个MovieService的接口。

MovieService.java
123456
package huangbowen.net.service;public interface MovieService {
String getMovieName();}

创建一个DefaultMovieService来实现这个接口。

DefaultMovieService.java
12345678
package huangbowen.net.service;public class DefaultMovieService implements MovieService {
public String getMovieName() {
return "A Touch of Sin"; }}

然后创建一个Cinema类,会使用MoviceService来放电影。

Cinema.java
123456789101112131415
package huangbowen.net.service;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.stereotype.Component;@Componentpublic class Cinema {
@Autowired private MovieService movieService; public void printMovieName() {
System.out.println(movieService.getMovieName()); }}

建立一个Application类。

Application.java
12345678910111213141516171819202122232425262728
package huangbowen.net;import huangbowen.net.service.Cinema;import huangbowen.net.service.DefaultMovieService;import huangbowen.net.service.MovieService;import org.springframework.context.annotation.AnnotationConfigApplicationContext;import org.springframework.context.annotation.Bean;import org.springframework.context.annotation.ComponentScan;import org.springframework.context.annotation.Configuration;@Configuration@ComponentScanpublic class Application{
@Bean public MovieService getMovieService() {
return new DefaultMovieService(); } public static void main( String[] args ) {
AnnotationConfigApplicationContext applicationContext = new AnnotationConfigApplicationContext(Application.class); Cinema cinema = applicationContext.getBean(Cinema.class); cinema.printMovieName(); }}

Ok,运行main函数,得到控制台输出:

1
A Touch of Sin

本例子中主要使用Annotation功能来实现对MoviceService的注入。我们将Cinema.java的头部标注为@Component说明该类交由Spring托管。而Cinema.java中的属性MoviceService标注为@Autowired,则Spring在初始化Cinema类时会从Application Context中找到类型为MovieService的Bean,并赋值给Cinema。在Application.java中我们声明了一个类型为MovieService的Bean。并且标注Application.java为@Configuration,这是告诉Spring在Application.java中定义了一个或多个@Bean方法,让Spring容器可以在运行时生成这些Bean。@ComponentScan则会让Spring容器自动扫描当前package下的标有@Component的class,这些class都将由Spring托管。

本例中的源码请在上自行下载。

转载地址:http://taqbm.baihongyu.com/

你可能感兴趣的文章
利用组策略进行的一次Windows主机安全整改
查看>>
Ruby语法学习笔记(1)
查看>>
Windows Phone 7 使用选择器(Chooser)
查看>>
QOS 之 WRED
查看>>
ASP.NET MVC5 知识点整理
查看>>
CCNP 640-892知识点中文精简解释
查看>>
listview适配器与加载过程详解
查看>>
SDN控制器列表
查看>>
LeetCode - 8. String to Integer (atoi)
查看>>
在两个php下session无法使用的问题
查看>>
说一说关于破解支付宝AR红包的事
查看>>
Oracle DG之--构建Physical Standby(一主库对应多备库)
查看>>
深入学习 Hyper-V 的导出和导入
查看>>
为迎接祖国60华诞,更换博客页面了!!!
查看>>
基于OHCI的USB主机 —— USB设备去的配置描述符
查看>>
IO Foundation 6-解压缩zip文件
查看>>
收件人管理及活动目录集成
查看>>
几个常用的dos命令
查看>>
多态的概念
查看>>
个人笔记:LINUX下MAIL通知维护
查看>>