我试图通过一个简单的程序在Spring中使用@Autowired注释进行依赖注入,但是我给出了以下错误
Exception in thread "main" java.lang.NullPointerException
at Customer.d(Customer.java:8)
at Main.main(Main.java:12)
通过xml配置,它给了我正确的结果。
我的 xml 文件
<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.5.xsd">
<bean class="org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor"/>
<bean id="person" class="Person">
<property name="name" value="khan"/>
</bean>
<bean id="cust" class="Customer"></bean>
</beans>
客户类
public class Customer {
@Autowired
private Person p;
public void display(){
System.out.println(p.getName());
}
}
人员类
public class Person {
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
private String name;
}
主类
public class Main {
public static void main(String[] a) {
Resource r=new ClassPathResource("SpringXml.xml");
BeanFactory factory=new XmlBeanFactory(r);
Customer c=(Customer)factory.getBean("cust");
c.display();
}
}
试试这个:
<bean id="person" class="com.yourpackage.Person">
<property name="name" value="khan"/>
</bean>
<bean id="cust" class="com.yourpackage.Customer">
<property name="p" ref="person"/>
</bean>
不要忘记添加fullpath类包
像这样试试
public static void main(String[] args) throws Exception {
ApplicationContext context= new ClassPathXmlApplicationContext("SpringXml.xml");
Customer c = (Customer) context.getBean("cust");
c.display();
}
Spring@自动配电 我对Spring@Autowired注释有疑问。请帮助。。。 在Spring mvc中,当我按此顺序尝试@Autow的时候 控制器- 即在控制器I自动连线服务类对象中,在服务类自动连线Dao对象中。 这个注射链工作得很好。 类似地,在strutrs2 Spring中,我以这种方式应用了@Autowired注释 操作--- 该注射链也工作正常。 如果我从这个链之外调用一个fu
我不明白的是为什么人们说自我调用会破坏交易?只要调用方方法是事务性的,难道一切都不应该像预期的那样工作吗?我有什么遗漏吗?
我正在使用SpringFramework和Java。我使用SpringXML文件来定义体系结构的流程,以及Java部分将使用的bean。 我的xml文件中有两个相同类的bean,但它们的构造函数参数不同: 是否有一种方法可以将其中一个bean设置为默认值,以便从Java@Autow的它?并且,当我想使用非默认bean时,应用注释。
问题内容: 我正在看工作区中的一些旧示例。由于没有 @Autowired, 我看不到自动 装配的方式 。Spring Boot + Facebook默认配置。 它工作完美,但是这些bean如何在没有@Autowired的情况下自动进行自动连线? 它们是作为字段或在构造函数中自动接线的吗? 问题答案: 借助Spring Boot 1.4+,构造函数将自动进行自动接线 https://docs.spr
问题内容: 我正在开发一个Spring Boot应用程序,并且在这里遇到了一个问题。我试图注入一个@Repository注释的接口,它似乎根本不起作用。我收到这个错误 这是我的代码: 主要应用类别: Entity class: Repository interface: Controller: build.gradle application.properties: 我什至将我的代码与Access
问题内容: 我的应用程序使用Spring自动装配来配置Bean。我刚刚尝试添加@Transactional,预期的代理似乎没有被调用。我希望PersonalController用事务代理包装的UpdatePublicMapService调用UpdatePublicMapService。 我看到的是PersonalController实例化了两次。第一次获得代理,但是第二次获得未代理的目标。我究竟做