- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
ClassPathXmlApplicationContext ct = new ClassPathXmlApplicationContext();
ct.refresh();
ConfigurableListableBeanFactory bf = ct.getBeanFactory();
Ad bean = (Ad) bf.createBean(Ad.class);
System.out.println("bean ="+bean);
System.out.println("size= "+bf.getBeansOfType(Ad.class).size()); // print 0
Ad类,这里是Ad类信息,AD扩展了AbstractAd类:
public class Ad {
@Override
public String toString() {
return "ad[adid=" + this.getId() + "]";
}
这是日志:
[DEBUG] Creating instance of bean 'com.Ad'
[DEBUG] Finished creating instance of bean 'com.Ad'
bean = ad[adid=null]
size= 0
在我看来,size 应该是 1,有什么问题吗?
ps: 最后我使用 GenericApplicationContext 和 BeanDefinition 并成功创建 Bean 并从上下文中获取,
GenericApplicationContext ct = new GenericApplicationContext();
ct.refresh();
ConfigurableListableBeanFactory bf = ct.getBeanFactory();
System.out.println("--------------start------------/n--------------------------/n-------------------/n");
BeanDefinition definition = new RootBeanDefinition(Ad.class);
ct.registerBeanDefinition("sampleService",
System.out.println(bf.getBeansOfType(Ad.class).size()); //print 1
日志:
[DEBUG] Creating instance of bean 'sampleService'
[DEBUG] Eagerly caching bean 'sampleService' to allow for resolving potential circular references
[DEBUG] Finished creating instance of bean 'sampleService'
1
但我仍然想知道:为什么 getBeansOfType(Ad.class).size() 在 ClassPathXmlApplicationContext creteBean 之后为 0?
最佳答案
在 ClassPathXmlApplicationContext 中,您没有传递任何 XML,如果您传递任何 spring 配置 xml,那么它将显示预期结果。 Ad bean = (Ad) bf.createBean(Ad.class);
将只创建一个类的 bean。但它不会将其添加到小枝上下文中。
在第二个代码中,您使用 registerBeanDefinition 方法注册了您的 bean。这样它就显示出预期的结果。
我试过下面的代码,它有效
ClassPathXmlApplicationContext classPathXmlApplicationContext = new ClassPathXmlApplicationContext("/Beans.xml");
classPathXmlApplicationContext.refresh();
ConfigurableListableBeanFactory beanFactory = classPathXmlApplicationContext.getBeanFactory();
System.out.println(beanFactory.getBeansOfType(HelloWorld.class).size());
关于java - 使用 ClassPathXmlApplicationContext 以编程方式创建 Bean 但无法获取 bean; Spring ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15682231/
我通过听来学习 Java Spring Framework“Spring & Hibernate for Beginners”udemy 类(class)。我在尝试时挣扎导入org.springfra
我的主类的静态方法中有以下代码 - appContext = new ClassPathXmlApplicationContext(new String[] { "classp
我将 spring 与其他框架一起使用,并且我是序列化领域的新手。 问题是什么: 我需要序列化包含 org.eclipse.jetty.websocket.api.Session session (不
我正在使用 spring hibernate maven 项目。这里我得到了异常 dispatcher-servlet.xml 文件未找到。我应该如何添加路径。或者我应该在 .classpath 文件
我有这个代码... public static void main(String[] args) { ApplicationContext context = new ClassPathXmlApp
“本地文件名”是指资源文件与类文件位于同一目录中。在下面的例子中,这是 JUnitRunner.class 文件。 Java 的 getResource()如果路径不是以 /' 开头,文件可以处理这个
我是 Spring 新手。我在将类路径作为 ClassPathXmlApplicationContext 的参数时遇到问题。我使用 Netbeans。我使用 ClassPathXmlApplicati
我正在使用 Intellij,我的源类是 main.com.coding,我的资源文件是 main.com.testing。我将 spring.xml 文件放入资源文件中。 我的测试类位于 test.
我正在尝试使用 Spring 3.2.0 创建连接,但出现 NullPointerException: ApplicationContext ctx = new ClassPathXmlApplica
我正在使用 spring-framework 和 hibernate 开发一个 Maven 项目。我有这两种方法: public void loadXml() throws IOException,
我们有一个不在 Web 容器中运行的应用程序,所以我正在尝试启动 Spring。在“main”函数中我们有这样的: public static void main(String[] args) thr
我尝试使用 PropertyPlaceholderConfigurer 加载属性文件中的一些变量,但它不起作用。互联网上的一些网站建议当 spring aop 不在类路径中时会出现问题,但我确保 ao
我的网络应用程序使用 iText 动态创建 PDF。 GlassFish 线程池用于在单独的线程中处理每个 PDF。 Spring 遍布整个应用程序以进行依赖注入(inject)。应用程序的所有模块都
尝试使用 Spring 。 xml文件在src下。我已经搜索过,但找不到问题所在。似乎找不到 xml 文件。 我收到以下错误: Exception in thread "main" java.
我阅读了几篇有关此问题的文章,但仍然不明白如何解决我的问题。我正在使用此源作为起点创建一个 Spring Web 服务: http://eggsylife.co.uk/2010/01/03/sprin
我使用Springframework的ClassPathXMLApplicationContext来初始化一些bean,如下所示: ctx = new ClassPathXMLApplicatio
这个问题已经有答案了: BeanFactory vs ApplicationContext (22 个回答) 已关闭 8 年前。 以下两条语句显然都是用于加载 xml 配置,但它们之间有什么区别? A
这个问题已经有答案了: What causes and what are the differences between NoClassDefFoundError and ClassNotFoundE
我的代码使用以下代码实例化一个 spring 实例: String filePath = "applicationContext.xml"; ApplicationContext context =
我在使用Springs框架时遇到了一个问题,导致服务器和数据库之间无法通信。 我创建的项目是Spring项目,然后重构为Maven。 在代码中的这一行:ClassPathXmlApplicationC
我是一名优秀的程序员,十分优秀!