spring 中配置bean的注入是<property>的name与与ref的id名需要一样吗??

[code="java"]


<bean id="fnBean" class="com.lopu.framework.modules.maintain.action.FlightNatureAction" scope="prototype">
     <property name="fnService">//此name必须是iService吗???
        <ref bean="iService" />
    </property> 
</bean>

[/code]

[code="java"]public class FlightNatureAction extends ActionSupport implements
ModelDriven {

private IService fnService;
private List<FlightNature> fnLists = new ArrayList<FlightNature>();
private FlightNature fnBean = new FlightNature();

public IService getFnService() {
    return fnService;
}

public void setFnService(IService fnService) {
    this.fnService = fnService;
}

public List<FlightNature> getFnLists() {
    return fnLists;
}

public void setFnLists(List<FlightNature> fnLists) {
    this.fnLists = fnLists;
}

@SuppressWarnings("unchecked")
public String list() throws Exception {

//如果这样写会报NPE,即fnService没注入成功,但我把整段程序中的fnService改为iService,并改下配置文件就一切正常了
this.fnLists = this.fnService.loadAll(FlightNature.class);

    return SUCCESS;
}


public FlightNature getModel() {
    return this.fnBean;
}

}[/code]

本人spring菜鸟,多多指教。。。

lgzbj2006
lgzbj2006 不用保持一致也可以
4 年多之前 回复

3个回答

[quote] //此name必须是iService吗???



[/quote]

property name对应了
public void setFnService(IService fnService) {

this.fnService = fnService;

}

那么参数只要是IService类型的就OK了。。
跟下面是一样的
[code="xml"]

<bean id="fnBean" class="com.lopu.framework.modules.maintain.action.FlightNatureAction" scope="prototype">
     <property name="fnService">//此name必须是iService吗???
        <ref bean="a" />
    </property> 
</bean>

[/code]

[color=indigo][quote]

//此name必须是iService吗???





[/quote]
咱们来看你这段代码
1. 这个是干什么的? 是spring在bean的实例化过程中,把bean封装成beanwraper,然后进行统一的装配,这个name是指的是
com.lopu.framework.modules.maintain.action.FlightNatureAction里的域成员,和你配置文件里的[quote]



[/quote]没有关系,只是实例化这个bean通过action中的set方法,注入进去而已。[/color]

[color=indigo][quote]





//此name必须是iService吗???





[/quote]

你的代码改成这样也是完全可以的,只要ref的bean,和你要注入的类型一直就能注入进去[/color]

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
spring配置set注入时,properties中的name只能使用先前配置过的bean的id。

``` <bean id="EmployeeAction" scope="prototype" class="com.tw.web.action.EmployeeAction"> <property name="employeeDao" ref="employeeDao"/> <property name="baseDao" ref="employeeDao"/> <property name="dao" ref="employeeDao"/> </bean> ``` 以上三种情况: 第一种(employeeDao):可以正确注入 第二种(baseDao):由于配置中有一个id="baseDao"的抽象bean,所以会报错:baseDao这bean是一个抽象bean。 第三种(dao):根本不进入set中。 先前我一直纳闷为什么name和ref的字符串不一样就不能够正确注入。直到看到第二种配置报的错,才发现name直接就对应了配置中bean的id了。 是这样的: 我的配置中确实存在一个id="baseDao"的抽象类 但是在注入时,baseDao只是一个属性。相当于: public void setBaseDao(IEmployeeDao employeeDao){} 我的配置是: ``` <property name="baseDao", ref="employeeDao" /> ``` 那么Spring按理应该是通过ref去找id="employeeDao"的bean然后注入到setBaseDao中。 但是我遇到的问题是,Spring是通过name去找id="baseDao"的bean。 另外, ``` <property name="id", value="1" /> ``` 这样的形式也不行。 奇怪的是,配置SessionFactory的时候并没有问题。 **刚刚在相关提问中找到一个解决方法:把Struts配置中的class="类全限定名",改成Spring配置的bean的id就行了。还是想请问一下有谁知道是什么问题吗?** 谢谢各位!

Spring中的bean中的name属性问题

java程序代码 private BaseMapper baseMapper = null; public void setBaseMapper(BaseMapper baseMapper) { this.baseMapper = baseMapper; } Spring中的bean配置 <bean id="baseCityQuery" class="com.service.xukai.BaseService"> <property name="baseMapper" ref="baseMapper" /> </bean> java代码中的baseMapper 一定要和Spring配置中的name值一样吗? 我遇到BaseMapper的变量名写成mapper 即private BaseMapper mapper = null; public void setBaseMapper(BaseMapper mapper) { this.mapper = mapper; } 这样也可以运行呢???求教了。。。

spring中的配置文件中的property标签中的ref属性和value属性有什么不同?

spring中的配置文件中的property标签中的ref属性和value属性有什么不同?

Spring bean注入 获取为空

<!--applicationContext.xml--> <?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.0.xsd"> <bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource"> <property name="driverClassName" value="com.mysql.jdbc.Driver"> </property> <property name="url" value="jdbc:mysql://localhost:3306/db_xyd?useUnicode=true&amp;amp;amp;amp;amp;amp;characterEncoding=utf-8-"> </property> <property name="username" value="root"></property> <property name="password" value="1234"></property> </bean> <bean id="sessionFactory" class="org.springframework.orm.hibernate3.LocalSessionFactoryBean"> <property name="dataSource"> <ref bean="dataSource" /> </property> <property name="hibernateProperties"> <props> <prop key="hibernate.dialect"> <!-- org.hibernate.dialect.SQLServerDialect--> org.hibernate.dialect.MySQLDialect </prop> <prop key="hibernate.show_sql">true</prop> </props> </property> <property name="mappingResources"> <list> <value>com/model/TDictionary.hbm.xml</value> </list> </property> </bean> <!-- dictionary --> <bean id="TDictionaryDAO" class="com.dao.TDictionaryDAO"> <property name="sessionFactory"> <ref bean="sessionFactory" /> </property> </bean> <bean id="dictionaryAction" class="com.action.dictionaryAction" scope="prototype"> <property name="dictionaryDAO"> <ref bean="TDictionaryDAO" /> </property> </bean> </beans> package com.dao; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.springframework.context.ApplicationContext; import org.springframework.orm.hibernate3.support.HibernateDaoSupport; import com.model.TDictionary; public class TDictionaryDAO extends HibernateDaoSupport { private static final Log log = LogFactory.getLog(TDictionaryDAO.class); public void save(TDictionary transientInstance) { log.debug("saving TDictionary instance"); try { getHibernateTemplate().save(transientInstance); log.debug("save successful"); } catch (RuntimeException re) { log.error("save failed", re); throw re; } } public static TDictionaryDAO getFromApplicationContext(ApplicationContext ctx) { return (TDictionaryDAO) ctx.getBean("TDictionaryDAO"); } } package com.action; import org.springframework.context.ApplicationContext; import org.springframework.context.support.ClassPathXmlApplicationContext; import org.springframework.context.support.FileSystemXmlApplicationContext; import com.dao.TDictionaryDAO; import com.model.TDictionary; import com.opensymphony.xwork2.ActionSupport; public class dictionaryAction extends ActionSupport { private int OID; private String willtake; private TDictionaryDAO dictionaryDAO; public String dictionaryAdd() { TDictionary dict=new TDictionary(); dict.setOID(OID); dict.setL_key(100000); dict.setVc_value(willtake); dict.setVc_caption("vc_caption"); //这里报空指针异常,是dictionaryDAO空 dictionaryDAO.save(dict); return "success"; } public TDictionaryDAO getDictionaryDAO() { return dictionaryDAO; } public void setDictionaryDAO(TDictionaryDAO dictionaryDAO) { this.dictionaryDAO = dictionaryDAO; } }

Ehcache的Spring配置依赖注入问题

Spring在依赖注入配置时,注入的对象的类型需要同接收的参数类型相同才能注入成功的。 但是在Ehcache的注入时,我发现类型不匹配,却能注入成功。 小弟愚昧,还请多多指教。具体配置如下: Spring的bean.xml配置如下: ``` <?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd"> <!-- 配置eh缓存管理器 --> <bean id="cacheManager" class="org.springframework.cache.ehcache.EhCacheManagerFactoryBean" /> <!-- 配置一个简单的缓存工厂bean对象 --> <bean id="simpleCache" class="org.springframework.cache.ehcache.EhCacheFactoryBean"> <property name="cacheManager" ref="cacheManager" /> <property name="cacheName" value="MyEhCache" /> </bean> <!--- 缓存测试Bean对象 --> <bean id="ehcacheTest" class="spring.ehcache.EhcacheTest"> <property name="cache" ref="simpleCache"></property> </bean> </beans> ``` 疑问说明: org.springframework.cache.ehcache.EhCacheFactoryBean类的setter如下: ``` public void setCacheManager(CacheManager cacheManager) { this.cacheManager = cacheManager; } ``` 而bean.xml配置文件中配置为: <property name="cacheManager" ref="cacheManager" /> 这里cacheManager为org.springframework.cache.ehcache.EhCacheManagerFactoryBean类型,并非实际期望的:net.sf.ehcache.CacheManager类型? 请问Spring是怎么完成注入的? 同理: 测试类EhcacheTest中的属性cache为net.sf.ehcache.Cache类型,而非org.springframework.cache.ehcache.EhCacheFactoryBean类型,为什么同样能够注入成功? 还请Spring和Ehcache方面的高手帮忙看看是怎么回事?小弟感激不尽!

类中怎么使用在spring配置文件中已经创建好的bean呢

在整合redis+shiro遇到这样一个问题,在spring配置文件里面创建了一个这样的bean ``` <bean id="redisTemplate" class="org.springframework.data.redis.core.RedisTemplate"> <property name="connectionFactory" ref="connectionFactory" /> <!--key 的存储不使用默认的 JDK 序列化,而是使用 StringRedisSerializer 的序列化方式--> <property name="hashKeySerializer" ref="stringRedisSerializer"/> <property name="keySerializer" ref="stringRedisSerializer"/> </bean> ``` 然后在ShiroRedisCache类文件中,使用@Autowired注入的redisTemplate一直为空值 ``` @Autowired private RedisTemplate<Serializable,Serializable> redisTemplate; ``` 但是使用加载配置文件的方式,就可以正常获得redisTemplate的值 ``` private static ApplicationContext ac = new ClassPathXmlApplicationContext("classpath:spring.xml"); private static RedisTemplate<Serializable,Serializable> redisTemplate = (RedisTemplate<Serializable, Serializable>) ac.getBean("redisTemplate"); ``` 请问哪位大神能够帮忙解答一下,应该怎么使用注解方式注入bean

我在一个项目中看到spring配置文件中的几个bean只有class属性,没有id,怎么回事?

我今天在学习spring时,学到项目中配置文件中,有几个bean,都是只是写了class,并没有指明id,这是怎么回事,这样是错误的,还是针对特殊的功能的某种特殊的写法

Spring框架的配置文件中,property标签和其属性都是干嘛用的?

![图片说明](https://img-ask.csdn.net/upload/201604/10/1460259993_186251.png) 上图中框出来的标签和属性代表什么?有何用处,谢谢作答

关于servlet中注入Spring bean 的问题

web.xml 相关配置如下 ``` <listener> <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class> </listener> <context-param> <param-name>contextConfigLocation</param-name> <param-value>classpath*:springConfig/applicationContext.xml</param-value> </context-param> <servlet> <servlet-name>clusterServlet</servlet-name> <servlet-class>com.shu.ces.ysh.servlet.ClusterServletProxy</servlet-class> <load-on-startup>2</load-on-startup> </servlet> <servlet> <servlet-name>MVC</servlet-name> <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> <init-param> <param-name>contextConfigLocation</param-name> <param-value>classpath*:springConfig/mvc*.*</param-value> </init-param> <load-on-startup>1</load-on-startup> </servlet> <servlet-mapping> <servlet-name>MVC</servlet-name> <url-pattern>*.do</url-pattern> </servlet-mapping> ``` Spring 配置如下 ``` <bean id = "grid" class = "com.shu.ces.ysh.model.Grid" scope = "singleton"> <property name = "clusters"> <list> <ref bean = "cluster1"></ref> </list> </property> </bean> ``` ClusterServletProxy代码如下 ``` public class ClusterServletProxy extends HttpServlet { private String targetBean; private Servlet proxy; public void init() throws ServletException { this.targetBean = getServletName(); getServletBean(); proxy.init(getServletConfig()); } private void getServletBean(){ WebApplicationContext wac = WebApplicationContextUtils.getRequiredWebApplicationContext(getServletContext()); this.proxy = (Servlet) wac.getBean(targetBean); } } ``` ClusterServlet代码如下 ``` public class ClusterServlet extends HttpServlet { private static final long serialVersionUID = 1L; // @Autowired //SpringUtil spring; private JobQueue jobQueue; private Grid grid; public JobQueue getJobQueue() { return jobQueue; } public void setJobQueue(JobQueue jobQueue) { this.jobQueue = jobQueue; } public Grid getGrid() { return grid; } public void setGrid(Grid grid) { this.grid = grid; } // @SuppressWarnings("static-access") public void init() throws ServletException { System.out.println(grid); ...... ...... .... ``` controller代码如下 ``` @Controller public class UserController { @Autowired private Grid grid; @Resource(name="userDao") private UserDao userDao; @RequestMapping(value = "login", method = RequestMethod.POST) public ModelAndView login (String userName, String password) { System.out.println(grid); .... .... .... ``` 结果: 两次打印出来的grid bean不是同一个bean servlet 中 : com.shu.ces.ysh.model.Grid@6df773 controller中: com.shu.ces.ysh.model.Grid@16b22f8

spring框架配置bean的时候找不到对应的class

<bean id="PhotoService" class="com.bbs.Service.impl.PhotoService"> <property name="photoDAO" ref="PhotoService"></property> </bean> ![CSDN移动问答][1] [1]: http://img.my.csdn.net/uploads/201405/10/1399729923_6910.jpg

spring初始化bean的问题

如题, 工作中遇到一个类似"循环引用"的问题: ``` <bean id="A" class="com.xxx.A" init-method="initA"> <property name="B" ref="B"></property> </bean> <bean id="B" class="com.xxx.B" init-method="initB"> </bean> ``` 上面的xml加载初始化 "A" bean的时候, 配置ref B 会依据无参构造器创建“B”Bean, 并暴露一个exposedObj提前返回, 此时initB未执行 , 继续完成"A" bean 的创建, 执行initA , 而initA需要initB提供的一些变量, 就会发生空指针异常. 解决方法一: 先初始化B bean, 还有其他方法吗?

spring+mybatis 配置mapper扫描无法注入

``` applicationContext.xml <?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" xmlns:p="http://www.springframework.org/schema/p" xmlns:tx="http://www.springframework.org/schema/tx" xmlns:aop="http://www.springframework.org/schema/aop" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx.xsd http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop.xsd"> <!--获得属性文件里面的键值 --> <!-- <context:property-placeholder location="classpath*:*.properties" /> --> <!--扫描需要容器管理的类--> <context:component-scan base-package="com.nb"/> <!-- 数据源 --> <bean name="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource"> <property name="driverClassName"> <value>com.mysql.jdbc.Driver</value> </property> <property name="url"> <value>jdbc:mysql://127.0.0.1:3306/mynb?useUnicode=true&amp;characterEncoding=UTF-8</value> </property> <property name="username"> <value>root</value> </property> <property name="password"> <value>123456</value> </property> </bean> <!-- ================================ MyBatis SqlSession配置 ========================================= --> <!-- 使用SqlSessionFactoryBean工厂产生SqlSession对象,方便后期注入Dao --> <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean"> <property name="dataSource" ref="dataSource" /> <!-- <property name="configLocation" value="classpath:configuration.xml"></property>--> <!-- 自动扫描entity目录, 省掉Configuration.xml里的手工配置 --> <property name="mapperLocations" value="classpath*:com/nb/dao/*.xml" /> </bean> <bean class="org.mybatis.spring.mapper.MapperScannerConfigurer"> <property name="basePackage" value="com.nb.dao" /> <!-- <property name="sqlSessionFactoryBeanName" value="sqlSessionFactory" /> --> </bean> <!-- ================================= 事务控制相关 ============================================= --> <bean name="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager"> <property name="dataSource" ref="dataSource"></property> </bean> <tx:advice id="txAdvice" transaction-manager="transactionManager"> <tx:attributes> <tx:method name="delete*" propagation="REQUIRED" read-only="false" rollback-for="java.lang.Exception" no-rollback-for="java.lang.RuntimeException"/> <tx:method name="insert*" propagation="REQUIRED" read-only="false" rollback-for="java.lang.RuntimeException" /> <tx:method name="update*" propagation="REQUIRED" read-only="false" rollback-for="java.lang.Exception" /> <tx:method name="find*" propagation="SUPPORTS"/> <tx:method name="get*" propagation="SUPPORTS"/> <tx:method name="select*" propagation="SUPPORTS"/> </tx:attributes> </tx:advice> <aop:config> <aop:pointcut id="pc" expression="execution(* *.*.*(..))" /> <aop:advisor pointcut-ref="pc" advice-ref="txAdvice" /> </aop:config> </beans> 请问是什么原因呢,帮忙看看,谢谢

如何用属性注入的方式为spring的service注入Mybatis的Mapper对象?

万能的网友的。帮帮我吧。 spring+Mybatis+struts2整合中遇到一个问题:service层中不知道如何注入Mapper对象啊。 首先我分三层。action---> service---->Mapper(充当dao层)。 我的Mapper是扫描包生成实现类的。然而我的service里面有一个Mapper对象。 就像这样: public class ProductService { //@Autowired private ProductMapper productMapper; public void setProductMapper(ProductMapper productMapper) { this.productMapper = productMapper; } //省略其他代码。。。 } 然后我想通过setter方法将productMapper注入到ProductService中。 我的配置文件如下: <bean id="Mapper" class="org.mybatis.spring.mapper.MapperScannerConfigurer" > <property name="basePackage" value="wm.mapper" /> <property name="sqlSessionFactoryBeanName" value="sqlSessionFactory"/> </bean> <bean id="productService" class="wm.service.ProductService" scope="prototype" > <property name="productMapper" ref=""></property> </bean> 写到这里,我忽然愣住了。这是我不知道ref该怎么写。或者还是value怎么写。如果用注解注入的话,我能解决这个问题。但是如果我用属性注入的方式怎么实现呢?大神们,没有分。不好意思啊。

Struts和Spring整合后访问Action注入失败

如题,刚刚接触SSH,不知道是哪配置出问题了, 蛋疼的是单元测试中用ClassPathXmlApplicationContext读取spring配置文件却通过了- - Struts2配置: <struts> <!-- 设置浏览器是否缓存静态内容,默认值为true(生产环境下使用),开发阶段最好关闭 --> <constant name="struts.serve.static.browserCache" value="false" /> <!-- 当struts的配置文件修改后,系统是否自动重新加载该文件,默认值为false(生产环境下使用),开发阶段最好打开 --> <constant name="struts.configuration.xml.reload" value="true" /> <!-- 开发模式下使用,这样可以打印出更详细的错误信息 --> <constant name="struts.devMode" value="true" /> <!-- <constant name="struts.action.extension" value="do,app" /> --> <constant name="struts.objectFactory" value="org.apache.struts2.spring.StrutsSpringObjectFactory" /> <!-- Configuration for the default package. --> <package name="default" extends="struts-default,json-default"> <action name="*_*" method="{2}" class="org.crush.mlms.action.{1}Action"> <result type="json"> <param name="success">responseJson</param> </result> </action> </package> </struts> Spring配置: <bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource"> <property name="url" value="jdbc:mysql://localhost:3306/mlms"></property> <property name="username" value="root"></property> </bean> <bean id="sessionFactory" class="org.springframework.orm.hibernate3.annotation.AnnotationSessionFactoryBean"> <property name="dataSource"> <ref bean="dataSource" /> </property> <property name="hibernateProperties"> <props> <prop key="hibernate.dialect"> org.hibernate.dialect.MySQLDialect </prop> </props> </property> <property name="mappingResources"> <list> <value>org/crush/mlms/domain/Test.hbm.xml</value> </list> </property> </bean> <bean id="testAction" class="org.crush.mlms.action.TestAction"> <property name="testService"> <ref bean="TestService" /> </property> <property name="testDao"> <ref bean="testDAO" /> </property> <property name="factory"> <ref bean="sessionFactory" /> </property> </bean> <bean id="testDAO" class="org.crush.mlms.domain.TestDAO"> <property name="sessionFactory"> <ref bean="sessionFactory" /> </property> </bean> <bean id="TestService" class="org.crush.mlms.service.TestService"> <property name="testDao"> <ref bean="testDAO" /> </property> </bean> web.xml配置: <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" version="3.0"> <display-name>MLMS</display-name> <listener> <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class> </listener> <context-param> <param-name>contextConfigLocation</param-name> <param-value>classpath:Bean.xml</param-value> </context-param> <filter> <filter-name>struts2</filter-name> <filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class> </filter> <filter-mapping> <filter-name>struts2</filter-name> <url-pattern>/*</url-pattern> </filter-mapping> <welcome-file-list> <welcome-file> index.html </welcome-file> </welcome-file-list> </web-app>

java关于hibernate和spring整合,在action层无法注入,报空指针错误。

以下为spring配置部分代码 ``` <bean id="testAction" class="com.sven.action.TestAction"> <property name="memberService"> <ref bean="memberService"/> </property> </bean> <bean id="memberService" class="com.sven.service.impl.SwMemberServiceImpl"> <property name="memberDao"> <ref bean="memberDao"/> </property> </bean> <bean id="memberDao" class="com.sven.dao.impl.SwMemberDaoImpl"> <property name="sessionFactory"> <ref bean="sessionFactory" /> </property> </bean> ``` 目录结构如下: ![目录结构](https://img-ask.csdn.net/upload/201708/09/1502281879_661840.png) 经过测试service和dao层注入没有问题。 在action类中,出现错误,代码如下: ``` package com.sven.action; import org.junit.Test; import org.springframework.beans.factory.xml.XmlBeanFactory; import org.springframework.core.io.ClassPathResource; import com.sven.entity.SwMember; import com.sven.service.SwMemberService; public class TestAction{ /** * 注入业务层 */ private SwMemberService memberService; public void setMemberService(SwMemberService memberService) { this.memberService = memberService; } @Test public void testAction() { SwMember member = this.memberService.findMemberById(19); System.out.println(member.getUsername() + " "+member.getName()); } // @Test public void test() { XmlBeanFactory factory = new XmlBeanFactory(new ClassPathResource("applicationContext.xml")); SwMemberService dao = (SwMemberService) factory.getBean("memberService"); SwMember member = dao.findMemberById(19); System.out.println(member.getUsername() + " "+member.getName()); } } ``` 运行test方法可以成功,获取到数据; 运行testAction方法报错:报错如下: ![报错](https://img-ask.csdn.net/upload/201708/09/1502282015_361210.png) 小白一枚,望大神指点!

spring不同xml配置文件之间的相互引用问题有会解决的吗?

《bean id="actionTest" class="service.SpringTest"》 《property name="serviceTest" ref="serviceTest"/》 《/bean》 我的spring配置文件有两个,第一个内容如上,ActionTest依赖的对象(ref对应的serviceTest的bean)写在另一个配置文件中,运行时会报错提示没有ref对应的serviceTest的bean,**写在同一个配置文件中的话就不报错了**。但之前工作过的项目中也是像我这么把action层和service层的bean分开在不同配置文件中写的。有人知道我现在的报错怎么回事怎么解决吗?说白了就是怎么才能让action层的配置文件找到service层的配置文件。(除了用import标签外有别的方式吗?具体怎么用)

spring中for循环创建bean疑问

Spring配置文件内容片断: <bean id="student" class="com.Student" scope="prototype"> <!-- bean --> <bean id="studentAction" class="com.StudentAction" scope="prototype"> <!-- action --> <property name="listStudent"> <list><ref local="student"/> </list> </property> </bean> Struts2中的action文件内容片断: private List<Student> listStudent; for(int i=0; i<list1.size(); i++){ Studnet student = new Student(); student.setName("name1"); listStudent.add(i,student); } 疑问:listStudent每次add时都是放入新的student实例,Studnet类已经被Spring管理了,肯定是不需要每次都new一个实例,求解决办法

在Main方法中获取spring Bean,调用Bean方法后,程序不能终止?

Main方法如下: [code="java"] public static void main(String[] args) { ApplicationContext context = new ClassPathXmlApplicationContext( new String[] {"ApplicationContext-jotm.xml"}); BeanFactory factory = (BeanFactory) context; UserService userService = (UserService)factory.getBean("userService"); if(args[0].equals("help") || args[0].equals("?")){ System.out.println("-------------------------"); System.out.println("equip 设备同步"); System.out.println("-------------------------"); } if(args[0].equals("equip")){ userService.synchronyEquipment(); } } [/code] 测试里面调用userService.synchronyEquipment(),可以正常终止。Main方法操作执行了,但程序不能终止。 我使用jotm操作两个数据库。我想是不是spring没有释放数据库连接? 不知道有人遇到过这种情况没有? ApplicationContext-jotm.xml [code="xml"] <?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.0.xsd"> <bean id="jotm" class="org.springframework.transaction.jta.JotmFactoryBean"/> <bean id="txManager" class="org.springframework.transaction.jta.JtaTransactionManager"> <property name="userTransaction" ref="jotm" /> </bean> <bean id="eamds" class="org.enhydra.jdbc.pool.StandardXAPoolDataSource" destroy-method="shutdown"> <property name="dataSource"> <bean class="org.enhydra.jdbc.standard.StandardXADataSource" destroy-method="shutdown"> <property name="transactionManager" ref="jotm" /> <property name="driverName" value="com.mysql.jdbc.Driver" /> <property name="url" value="jdbc:mysql://localhost/d7i" /> </bean> </property> <property name="user" value="root" /> <property name="password" value="root"/> </bean> <bean id="zhjds" class="org.enhydra.jdbc.pool.StandardXAPoolDataSource" destroy-method="shutdown"> <property name="dataSource"> <bean class="org.enhydra.jdbc.standard.StandardXADataSource" destroy-method="shutdown"> <property name="transactionManager" ref="jotm" /> <!-- property name="driverName" value="oracle.jdbc.driver.OracleDriver" /> <property name="url" value="jdbc:oracle:thin:@10.10.150.216:1521:eampoc" /--> <property name="driverName" value="com.mysql.jdbc.Driver" /> <property name="url" value="jdbc:mysql://localhost/eampoc"/> </bean> </property> <property name="user" value="root" /> <property name="password" value="root" /> </bean> <bean id="template1" class="org.springframework.jdbc.core.JdbcTemplate"> <property name="dataSource" ref="eamds" /> </bean> <bean id="template2" class="org.springframework.jdbc.core.JdbcTemplate"> <property name="dataSource" ref="zhjds" /> </bean> <bean id="EAMDao" class="com.hgsoft.EAMDAO"> <property name="jdbcTemplate"> <ref bean="template1"></ref> </property> <property name="fetchSize" value="1"/> </bean> <bean id="ZHJDao" class="com.hgsoft.ZHJDAO"> <property name="jdbcTemplate"> <ref bean="template2"></ref> </property> </bean> <bean id="userService" class="com.hgsoft.UserServiceImpl"> <property name="EAMDao" ref="EAMDao"/> <property name="executeService" ref="executeService"/> <property name="yaml" ref="yaml"/> <property name="yamlStr"> <value>equipment: count: select count(*) from new_object_collection t where t.issended='0' query: select t.equip_code,t.equip_name,t.sealflag from new_object_collection t where t.issended='0' update: update new_object_collection set issended='1' where equip_code=? insert: insert into eam_ncinv_equip (EQUIP_CODE,EQUIP_NAME,SEALFLAG ) values (?,?,?)</value> </property> </bean> <bean id="yaml" class="org.yaml.snakeyaml.Yaml" scope="prototype" /> <bean id="executeServiceTarget" class="com.hgsoft.ExecuteService"> <property name="EAMDao" ref="EAMDao"/> <property name="ZHJDao" ref="ZHJDao"/> </bean> <bean id="executeService" class="org.springframework.transaction.interceptor.TransactionProxyFactoryBean"> <property name="transactionManager"> <ref bean="txManager"/> </property> <property name="target"> <ref bean="executeServiceTarget"/> </property> <property name="transactionAttributes"> <props> <prop key="executeSynchrony">PROPAGATION_REQUIRES_NEW,-Exception</prop> </props> </property> </bean> </beans> [/code]

spring新手配置一个bean使用构造注入constructor-arg总是报错

spring新手求助! <bean id="way" class="com.test.impl.Way"> <constructor-arg value="2" /> </bean> 最简单的配置了一个bean, Way里有一个构造方法 public Way(int num) { this.num = num; } 然后总是报下面错: 信息: Pre-instantiating singletons in org.springframework.beans.factory.support.DefaultListableBeanFactory@67b6d4ae: defining beans [way]; root of factory hierarchy Exception in thread "main" java.lang.IllegalArgumentException

Python可以这样学(第一季:Python内功修炼)

董付国系列教材《Python程序设计基础》、《Python程序设计(第2版)》、《Python可以这样学》配套视频,讲解Python 3.5.x和3.6.x语法、内置对象用法、选择与循环以及函数设计与使用、lambda表达式用法、字符串与正则表达式应用、面向对象编程、文本文件与二进制文件操作、目录操作与系统运维、异常处理结构。

获取Linux下Ftp目录树并逐步绑定到treeview

在linux下抓取目录树,双击后获取该节点子节点(逐步生成)。另外有两个类,一个是windows下的(一次性获取目录树),一个是linux下的(足部获取目录树)

NS网络模拟和协议仿真源代码

NS网络模拟和协议仿真源代码,包含代码说明及协议分析

简单的NS3网络模拟仿真(计算机网络作业)

简单的NS3网络模拟仿真,内附有PPT演示。论文评述。以及简单的安装教程。

手把手实现Java图书管理系统(附源码)

【超实用课程内容】 本课程演示的是一套基于Java的SSM框架实现的图书管理系统,主要针对计算机相关专业的正在做毕设的学生与需要项目实战练习的java人群。详细介绍了图书管理系统的实现,包括:环境搭建、系统业务、技术实现、项目运行、功能演示、系统扩展等,以通俗易懂的方式,手把手的带你从零开始运行本套图书管理系统,该项目附带全部源码可作为毕设使用。 【课程如何观看?】 PC端:https://edu.csdn.net/course/detail/27513 移动端:CSDN 学院APP(注意不是CSDN APP哦) 本课程为录播课,课程2年有效观看时长,大家可以抓紧时间学习后一起讨论哦~ 【学员专享增值服务】 源码开放 课件、课程案例代码完全开放给你,你可以根据所学知识,自行修改、优化

三个项目玩转深度学习(附1G源码)

从事大数据与人工智能开发与实践约十年,钱老师亲自见证了大数据行业的发展与人工智能的从冷到热。事实证明,计算机技术的发展,算力突破,海量数据,机器人技术等,开启了第四次工业革命的序章。深度学习图像分类一直是人工智能的经典任务,是智慧零售、安防、无人驾驶等机器视觉应用领域的核心技术之一,掌握图像分类技术是机器视觉学习的重中之重。针对现有线上学习的特点与实际需求,我们开发了人工智能案例实战系列课程。打造:以项目案例实践为驱动的课程学习方式,覆盖了智能零售,智慧交通等常见领域,通过基础学习、项目案例实践、社群答疑,三维立体的方式,打造最好的学习效果。

150讲轻松搞定Python网络爬虫

【为什么学爬虫?】 &nbsp; &nbsp; &nbsp; &nbsp;1、爬虫入手容易,但是深入较难,如何写出高效率的爬虫,如何写出灵活性高可扩展的爬虫都是一项技术活。另外在爬虫过程中,经常容易遇到被反爬虫,比如字体反爬、IP识别、验证码等,如何层层攻克难点拿到想要的数据,这门课程,你都能学到! &nbsp; &nbsp; &nbsp; &nbsp;2、如果是作为一个其他行业的开发者,比如app开发,web开发,学习爬虫能让你加强对技术的认知,能够开发出更加安全的软件和网站 【课程设计】 一个完整的爬虫程序,无论大小,总体来说可以分成三个步骤,分别是: 网络请求:模拟浏览器的行为从网上抓取数据。 数据解析:将请求下来的数据进行过滤,提取我们想要的数据。 数据存储:将提取到的数据存储到硬盘或者内存中。比如用mysql数据库或者redis等。 那么本课程也是按照这几个步骤循序渐进的进行讲解,带领学生完整的掌握每个步骤的技术。另外,因为爬虫的多样性,在爬取的过程中可能会发生被反爬、效率低下等。因此我们又增加了两个章节用来提高爬虫程序的灵活性,分别是: 爬虫进阶:包括IP代理,多线程爬虫,图形验证码识别、JS加密解密、动态网页爬虫、字体反爬识别等。 Scrapy和分布式爬虫:Scrapy框架、Scrapy-redis组件、分布式爬虫等。 通过爬虫进阶的知识点我们能应付大量的反爬网站,而Scrapy框架作为一个专业的爬虫框架,使用他可以快速提高我们编写爬虫程序的效率和速度。另外如果一台机器不能满足你的需求,我们可以用分布式爬虫让多台机器帮助你快速爬取数据。 &nbsp; 从基础爬虫到商业化应用爬虫,本套课程满足您的所有需求! 【课程服务】 专属付费社群+每周三讨论会+1v1答疑

cuda开发cutilDLL

包括cutil32.dll、cutil32D.dll、cutil32.lib、cutil32D.lib,以及附带的glew32.lib/freeglut.lib

深度学习原理+项目实战+算法详解+主流框架(套餐)

深度学习系列课程从深度学习基础知识点开始讲解一步步进入神经网络的世界再到卷积和递归神经网络,详解各大经典网络架构。实战部分选择当下最火爆深度学习框架PyTorch与Tensorflow/Keras,全程实战演示框架核心使用与建模方法。项目实战部分选择计算机视觉与自然语言处理领域经典项目,从零开始详解算法原理,debug模式逐行代码解读。适合准备就业和转行的同学们加入学习! 建议按照下列课程顺序来进行学习 (1)掌握深度学习必备经典网络架构 (2)深度框架实战方法 (3)计算机视觉与自然语言处理项目实战。(按照课程排列顺序即可)

Tensorflow与python3.7适配版本

tensorflow与python3.7匹配的最新库,更新了python3.7以后可以自行下载,或者去国外python的扩展包下载界面自行下载。

4小时玩转微信小程序——基础入门与微信支付实战

这是一个门针对零基础学员学习微信小程序开发的视频教学课程。课程采用腾讯官方文档作为教程的唯一技术资料来源。杜绝网络上质量良莠不齐的资料给学员学习带来的障碍。 视频课程按照开发工具的下载、安装、使用、程序结构、视图层、逻辑层、微信小程序等几个部分组织课程,详细讲解整个小程序的开发过程

专为程序员设计的数学课

<p> 限时福利限时福利,<span>15000+程序员的选择!</span> </p> <p> 购课后添加学习助手(微信号:csdn590),按提示消息领取编程大礼包!并获取讲师答疑服务! </p> <p> <br> </p> <p> 套餐中一共包含5门程序员必学的数学课程(共47讲) </p> <p> 课程1:《零基础入门微积分》 </p> <p> 课程2:《数理统计与概率论》 </p> <p> 课程3:《代码学习线性代数》 </p> <p> 课程4:《数据处理的最优化》 </p> <p> 课程5:《马尔可夫随机过程》 </p> <p> <br> </p> <p> 哪些人适合学习这门课程? </p> <p> 1)大学生,平时只学习了数学理论,并未接触如何应用数学解决编程问题; </p> <p> 2)对算法、数据结构掌握程度薄弱的人,数学可以让你更好的理解算法、数据结构原理及应用; </p> <p> 3)看不懂大牛代码设计思想的人,因为所有的程序设计底层逻辑都是数学; </p> <p> 4)想学习新技术,如:人工智能、机器学习、深度学习等,这门课程是你的必修课程; </p> <p> 5)想修炼更好的编程内功,在遇到问题时可以灵活的应用数学思维解决问题。 </p> <p> <br> </p> <p> 在这门「专为程序员设计的数学课」系列课中,我们保证你能收获到这些:<br> <br> <span> </span> </p> <p class="ql-long-24357476"> <span class="ql-author-24357476">①价值300元编程课程大礼包</span> </p> <p class="ql-long-24357476"> <span class="ql-author-24357476">②应用数学优化代码的实操方法</span> </p> <p class="ql-long-24357476"> <span class="ql-author-24357476">③数学理论在编程实战中的应用</span> </p> <p class="ql-long-24357476"> <span class="ql-author-24357476">④程序员必学的5大数学知识</span> </p> <p class="ql-long-24357476"> <span class="ql-author-24357476">⑤人工智能领域必修数学课</span> </p> <p> <br> 备注:此课程只讲程序员所需要的数学,即使你数学基础薄弱,也能听懂,只需要初中的数学知识就足矣。<br> <br> 如何听课? </p> <p> 1、登录CSDN学院 APP 在我的课程中进行学习; </p> <p> 2、登录CSDN学院官网。 </p> <p> <br> </p> <p> 购课后如何领取免费赠送的编程大礼包和加入答疑群? </p> <p> 购课后,添加助教微信:<span> csdn590</span>,按提示领取编程大礼包,或观看付费视频的第一节内容扫码进群答疑交流! </p> <p> <img src="https://img-bss.csdn.net/201912251155398753.jpg" alt=""> </p>

实现简单的文件系统

实验内容: 通过对具体的文件存储空间的管理、文件的物理结构、目录结构和文件操作的实现,加深对文件系统内部功能和实现过程的理解。 要求: 1.在内存中开辟一个虚拟磁盘空间作为文件存储器,在其上实现一个简

机器学习初学者必会的案例精讲

通过六个实际的编码项目,带领同学入门人工智能。这些项目涉及机器学习(回归,分类,聚类),深度学习(神经网络),底层数学算法,Weka数据挖掘,利用Git开源项目实战等。

四分之一悬架模型simulink.7z

首先建立了四分之一车辆悬架系统的数学模型,应用MATLAB/Simulink软件建立该系统的仿真模型,并输入路面激励为随机激励,控制不同的悬架刚度和阻尼,选用最优的参数得到车辆悬架的振动加速度变化曲线

MFC一站式终极全套课程包

该套餐共包含从C小白到C++到MFC的全部课程,整套学下来绝对成为一名C++大牛!!!

C++语言基础视频教程

C++语言基础视频培训课程:本课与主讲者在大学开出的程序设计课程直接对接,准确把握知识点,注重教学视频与实践体系的结合,帮助初学者有效学习。本教程详细介绍C++语言中的封装、数据隐藏、继承、多态的实现等入门知识;主要包括类的声明、对象定义、构造函数和析构函数、运算符重载、继承和派生、多态性实现等。 课程需要有C语言程序设计的基础(可以利用本人开出的《C语言与程序设计》系列课学习)。学习者能够通过实践的方式,学会利用C++语言解决问题,具备进一步学习利用C++开发应用程序的基础。

Java8零基础入门视频教程

这门课程基于主流的java8平台,由浅入深的详细讲解了java SE的开发技术,可以使java方向的入门学员,快速扎实的掌握java开发技术!

HoloLens2开发入门教程

本课程为HoloLens2开发入门教程,讲解部署开发环境,安装VS2019,Unity版本,Windows SDK,创建Unity项目,讲解如何使用MRTK,编辑器模拟手势交互,打包VS工程并编译部署应用到HoloLens上等。

C/C++学习指南全套教程

C/C++学习的全套教程,从基本语法,基本原理,到界面开发、网络开发、Linux开发、安全算法,应用尽用。由毕业于清华大学的业内人士执课,为C/C++编程爱好者的教程。

pokemmo的资源

pokemmo必须的4个rom 分别为绿宝石 火红 心金 黑白 还有汉化补丁 资源不错哦 记得下载

test_head.py

本文件主要是针对使用dlib的imglab标注工具标记的目标检测框和关键点检测而生成的xml文件, 转换为coco数据集格式.

Java面试史上最全的JAVA专业术语面试100问 (前1-50)

前言: 说在前面, 面试题是根据一些朋友去面试提供的,再就是从网上整理了一些。 先更新50道,下一波吧后面的也更出来。 求赞求关注!! 废话也不多说,现在就来看看有哪些面试题 1、面向对象的特点有哪些? 抽象、继承、封装、多态。 2、接口和抽象类有什么联系和区别? 3、重载和重写有什么区别? 4、java有哪些基本数据类型? 5、数组有没有length()方法?String有没有length()方法? 数组没有length()方法,它有length属性。 String有length()方法。 集合求长度用

2019 AI开发者大会

2019 AI开发者大会(AI ProCon 2019)是由中国IT社区CSDN主办的AI技术与产业年度盛会。多年经验淬炼,如今蓄势待发:2019年9月6-7日,大会将有近百位中美顶尖AI专家、知名企业代表以及千余名AI开发者齐聚北京,进行技术解读和产业论证。我们不空谈口号,只谈技术,诚挚邀请AI业内人士一起共铸人工智能新篇章!

linux“开发工具三剑客”速成攻略

工欲善其事,必先利其器。Vim+Git+Makefile是Linux环境下嵌入式开发常用的工具。本专题主要面向初次接触Linux的新手,熟练掌握工作中常用的工具,在以后的学习和工作中提高效率。

DirectX修复工具V4.0增强版

DirectX修复工具(DirectX Repair)是一款系统级工具软件,简便易用。本程序为绿色版,无需安装,可直接运行。 本程序的主要功能是检测当前系统的DirectX状态,如果发现异常则进行修复

20行代码教你用python给证件照换底色

20行代码教你用python给证件照换底色

2019 Python开发者日-培训

本次活动将秉承“只讲技术,拒绝空谈”的理念,邀请十余位身处一线的Python技术专家,重点围绕Web开发、自动化运维、数据分析、人工智能等技术模块,分享真实生产环境中使用Python应对IT挑战的真知灼见。此外,针对不同层次的开发者,大会还安排了深度培训实操环节,为开发者们带来更多深度实战的机会。

我以为我对Mysql事务很熟,直到我遇到了阿里面试官

太惨了,面试又被吊打

相关热词 c#中如何设置提交按钮 c#帮助怎么用 c# 读取合并单元格的值 c#带阻程序 c# 替换span内容 c# rpc c#控制台点阵字输出 c#do while循环 c#调用dll多线程 c#找出两个集合不同的
立即提问