Java 依赖注入标准(JSR-330)简介例子
来源:互联网 发布:图论算法对比 编辑:程序博客网 时间:2024/06/13 01:39
1.之前上一章主要介绍了JSR-330协议用到的一些比较常见的注入标签,使用它们可以简化Spring的开发工作,下面我以一个简单的例子加入说明。
2.1接口类MessageProvider
2.2 它的接口实现类
注意: 1.@Named("messageProvider")这个标签申明了以后,可以供其他的服务类使用。
2. @Inject @Named("message")
可以注入属性,也可以注入服务类等
2.3 调用上面类的接口类
2.4 实现MessageRenderer的实现类,如下所示:
2.5 配置文件。
注意:
1.<context:component-scan base-package="com.apress.prospring3.ch5.jsr330"/> 表示的是要扫描的类路径,该目录下的JAVA类都会被Spring容器识别.
2. <bean id="message" class="java.lang.String">
<constructor-arg value="You are running JSR330!"/>
</bean>
申明的这个bean刚好在ConfigurableMessageProvider中使用到了。
2.6 Main函数实现类
(关于它们的具体用法,可以参考Java 依赖注入标准(JSR-330)简介)
(完,待续...................................)
2.1接口类MessageProvider
public interface MessageProvider {
public String getMessage();
}
import javax.inject.Inject;
import javax.inject.Named;
@Named("messageProvider")
public class ConfigurableMessageProvider implements MessageProvider {
private String message = "Default message";
public ConfigurableMessageProvider() {
}
@Inject
@Named("message")
public ConfigurableMessageProvider(String message) {
this.message = message;
}
public void setMessage(String message) {
this.message = message;
}
public String getMessage() {
return message;
}
}
2. @Inject @Named("message")
可以注入属性,也可以注入服务类等
2.3 调用上面类的接口类
public interface MessageRenderer {
public void render();
public void setMessageProvider(MessageProvider provider);
public MessageProvider getMessageProvider();
}
2.4 实现MessageRenderer的实现类,如下所示:
import javax.inject.Inject;
import javax.inject.Named;
import javax.inject.Singleton;
@Named("messageRenderer")
@Singleton
public class StandardOutMessageRenderer implements MessageRenderer {
@Inject
@Named("messageProvider")
private MessageProvider messageProvider = null;
public void render() {
if (messageProvider == null) {
throw new RuntimeException(
"You must set the property messageProvider of class:"
+ StandardOutMessageRenderer.class.getName());
}
System.out.println(messageProvider.getMessage());
}
public void setMessageProvider(MessageProvider provider) {
this.messageProvider = provider;
}
public MessageProvider getMessageProvider() {
return this.messageProvider;
}
}
2.5 配置文件。
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:context="http://www.springframework.org/schema/context"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.1.xsd
http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.1.xsd">
<context:component-scan base-package="com.apress.prospring3.ch5.jsr330"/>
<bean id="message" class="java.lang.String">
<constructor-arg value="You are running JSR330!"/>
</bean>
</beans>
1.<context:component-scan base-package="com.apress.prospring3.ch5.jsr330"/> 表示的是要扫描的类路径,该目录下的JAVA类都会被Spring容器识别.
2. <bean id="message" class="java.lang.String">
<constructor-arg value="You are running JSR330!"/>
</bean>
申明的这个bean刚好在ConfigurableMessageProvider中使用到了。
2.6 Main函数实现类
import org.springframework.context.support.GenericXmlApplicationContext;
public class Jsr330Example {
public static void main(String[] args) {
GenericXmlApplicationContext ctx = new GenericXmlApplicationContext();
ctx.load("classpath:jsr330/jsr330.xml");
ctx.refresh();
MessageRenderer renderer = ctx.getBean("messageRenderer", MessageRenderer.class);
renderer.render();
}
}
(完,待续...................................)
- Java 依赖注入标准(JSR-330)简介例子
- Java 依赖注入标准 JSR-330 简介
- Java 依赖注入标准(JSR-330)简介
- Java 依赖注入标准(JSR-330)简介
- JSR 330(Java 的依赖注入)通过 JCP 接受
- Java 上下文与依赖注入(JSR 299)[1]
- JSR 299(Java EE 平台的上下文与依赖注入)最终建议草案
- Java 依赖注射规范(JSR-330)正式发布
- JAVA标准系列(final JSR)
- 依赖注入简介(一)
- 依赖注入简介(二)
- Spring依赖注入例子
- 依赖注入与JSR-330的参考实现——Guice
- 依赖注入与JSR-330的参考实现——Guice
- 依赖注入与JSR-330的参考实现——Guice
- 依赖注入模块Unity 简介(转)
- Spring核心技术(十)——JSR-330标准注解
- Java JSON 标准 JSR-353 相关
- PHP 递归读取指定文件夹下的所有文件名
- Flex验证框架技术总结
- php .htaccess文件使用详解
- C#多线程|匿名委托传参数|测试您的网站能承受的压力|附源代码
- 套接字绑定失败:已被占用问题
- Java 依赖注入标准(JSR-330)简介例子
- Linux设置环境变量小结
- 在C#工程中设置Reference的相对路径
- 强大的PHP发邮件类
- windows资源管理器停止使用
- 91无线发布国内Android应用数据
- myBatis + SpringMVC上传、下载文件
- Entity Framework 4.1乱抛EntitySqlException的BUG
- 自定义 UIPopoverController