论坛首页 Java企业应用论坛

Spring零配置通过注解实现Bean依赖注入总结

浏览 90614 次
精华帖 (3) :: 良好帖 (11) :: 新手帖 (1) :: 隐藏帖 (0)
作者 正文
   发表时间:2012-03-20  
kjj 写道
@Value
注入描述还少些部分,
此注解不但可以配合beandingyi,更可以直接获取属性文件的定义
比如在jdbc.properties 中定义
jdbc.url=jdbc:mysql://local/test

那么bean定义中就可以

@Value("${jdbc.url}")
private String url;
直接获取



从 3.0.0.M3 开始添加的新特性 不错
* @Value values may use ${...} placeholders (driven by PropertyPlaceholderConfigurer)
0 请登录后投票
   发表时间:2012-03-21  
个人觉得注解是个很蛋疼的东西。。。换个人来维护的话很麻烦。。。。
0 请登录后投票
   发表时间:2012-03-21  
ayanami001 写道
个人觉得注解是个很蛋疼的东西。。。换个人来维护的话很麻烦。。。。




有时候注解确实简单了。

但比如像事务等这些 最好还是配置文件。
0 请登录后投票
   发表时间:2012-03-21  
我发现 注解


hibernate 有注解
Struts也有注解
JPA也有注解
Spring也有注解
这注解是嘛呢 ~不清楚~
0 请登录后投票
   发表时间:2012-03-21  
w156445045 写道
我发现 注解


hibernate 有注解
Struts也有注解
JPA也有注解
Spring也有注解
这注解是嘛呢 ~不清楚~



注解 是一种元数据(描述数据的数据,本身无作为,即没有任何功能,需要别人读取并解释)

如@Service就是注解
0 请登录后投票
   发表时间:2012-03-21  
jinnianshilongnian 写道
hanfeng450 写道
弱弱的问一下

零配置通过注解实现依赖注入,那自定义标签怎样实现这个注入@service

貌似通过@Autowired这样注入是会空指针的

public class BrandTag extends TagSupport {
@Autowired
private BrandService brandService;
         public int doEndTag() throws JspException {

   System.out.println(" -( brandService == null ) is "+( brandService == null ));
         }
/**
* @param brandService the brandService to set
*/
public void setBrandService(BrandService brandService) {
this.brandService = brandService;
}
}
打印出来的是true............



你这个是taglib 它的声明周期是由web容器控制(而非spring容器),所以不能进行spring的依赖注入。

taglib在实际运行时 是一个实例池(不是单例,也不是原型)。

您可以写一个Spring工具类 来获取 相关的Service



能否赐教一下具体的实现。
或者贴一下实现的代码
0 请登录后投票
   发表时间:2012-03-21  
hanfeng450 写道
jinnianshilongnian 写道
hanfeng450 写道
弱弱的问一下

零配置通过注解实现依赖注入,那自定义标签怎样实现这个注入@service

貌似通过@Autowired这样注入是会空指针的

public class BrandTag extends TagSupport {
@Autowired
private BrandService brandService;
         public int doEndTag() throws JspException {

   System.out.println(" -( brandService == null ) is "+( brandService == null ));
         }
/**
* @param brandService the brandService to set
*/
public void setBrandService(BrandService brandService) {
this.brandService = brandService;
}
}
打印出来的是true............



你这个是taglib 它的声明周期是由web容器控制(而非spring容器),所以不能进行spring的依赖注入。

taglib在实际运行时 是一个实例池(不是单例,也不是原型)。

您可以写一个Spring工具类 来获取 相关的Service



能否赐教一下具体的实现。
或者贴一下实现的代码



您可以看一下我的 另一篇帖子【springMVC + spring3.1 + hibernate 4】 里边的 SpringUtil
0 请登录后投票
   发表时间:2012-04-03  
我配置了多个spring的配置文件,其中有一个配置了读取property文件的 <bean id="configBean"
class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
<property name="location">
<value>/WEB-INF/jdbc.properties</value>
</property>
</bean>

路劲正确,但是在引用的时候比如¥{username}却获取不到对应的值,key都是正确的
0 请登录后投票
   发表时间:2012-04-03  
skerywu 写道
我配置了多个spring的配置文件,其中有一个配置了读取property文件的 <bean id="configBean"
class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
<property name="location">
<value>/WEB-INF/jdbc.properties</value>
</property>
</bean>

路劲正确,但是在引用的时候比如¥{username}却获取不到对应的值,key都是正确的


¥{username} 是${username}

配了多少?


如果多个配置文件 建议

<property name="locations">
            <list>
                <value>classpath:resources.properties</value>
            </list>
</property>

通过list注入
0 请登录后投票
论坛首页 Java企业应用版

跳转论坛:
Global site tag (gtag.js) - Google Analytics