Spring:使用@Component进行注解
2017-10-18 10:01
288 查看
问题描述如下:在HOW2J.CN网站学习Spring的过程中,遇到一个小问题。代码非原创
1.首先建立java项目,然后在src中建立两个包,一个写bean类,一个写测试类。建立applicationContext.xml配置文件。导入jar包。
2.此处主要说明自己所遇到的问题,关键代码如下:
applicationContext.xml
Product类(有问题的地方):
Category类
测试类:public class TestSpring {
上面报错信息为:
改掉测试类TestSpring中的代码:
为:
发现结果为:null.
说明p.getCategory()指向为空。
然后我将Product类中的private Category category; 改为:
结果显示正确:
pro 1
cate 1
1.首先建立java项目,然后在src中建立两个包,一个写bean类,一个写测试类。建立applicationContext.xml配置文件。导入jar包。
2.此处主要说明自己所遇到的问题,关键代码如下:
applicationContext.xml
<context:component-scan base-package="com.how2java.pojo"/> <!-- 其作用是告诉Spring,bean都放在com.how2java.pojo这个包下 -->
Product类(有问题的地方):
@Component("p")//为Product类加上@Component注解,即表明此类是bean public class Product { private int id; private String name = "pro 1"; private Category category; //此处有问题。申明该变量,运行测试类,报错。 public Category getCategory() { return category; } public void setCategory(Category category) { this.category = category; } public int getId() { return id; } public void setId(int id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this.name = name; } }
Category类
@Component("c")//为Category 类加上@Component注解,即表明此类是bean public class Category { private int id; private String name ="cate 1"; public int getId() { return id; } public void setId(int id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this.name = name; } }
测试类:public class TestSpring {
public class TestSpring { public static void main(String[] args) { ApplicationContext context = new ClassPathXmlApplicationContext( new String[] { "applicationContext.xml" }); Product p = (Product) context.getBean("p"); System.out.println(p.getName()); System.out.println(p.getCategory().getName); } }
上面报错信息为:
Exception in thread "main" java.lang.NullPointerException at com.how2java.test.TestSpring.main(TestSpring.java:16)
改掉测试类TestSpring中的代码:
System.out.println(p.getCategory().getName);
为:
System.out.println(p.getCategory());
发现结果为:null.
说明p.getCategory()指向为空。
然后我将Product类中的private Category category; 改为:
private Category category = new Category();
结果显示正确:
pro 1
cate 1
相关文章推荐
- 注解的力量 -----Spring 2.5 JPA hibernate 使用方法的点滴整理(五):使用@Component 来简化bean的配置
- Spring 使用注解方式进行事物管理
- Spring 使用注解方式进行事务管理
- 使用注解和spring的JdbcTemplate进行封装实现类似Hibernate的功能
- 注解的力量 -----Spring 2.5 JPA hibernate 使用方法的点滴整理(五):使用@Component 来简化bean的配置
- spring 3 中使用注解的方式来进行任务调度。
- spring 3 中使用注解的方式来进行任务调度
- Spring 使用注解方式进行事务管理
- Spring 使用注解方式进行事务管理
- Spring注解的使用和区别:@Component、@Service、@Repository、@Controller
- Spring 使用注解方式进行事物管理
- 注解的力量 -----Spring 2.5 JPA hibernate 使用方法的点滴整理(五):使用@Component 来简化bean的配置
- Spring注解@Component和@resource的使用
- Spring 使用注解方式进行事务管理
- Spring 使用注解方式进行事物管理
- Spring 使用注解方式进行事务管理
- spring3 混合使用 XML 与注解(Annotation)进行 Bean 的配置
- Spring 使用注解方式进行事物管理
- Spring注解@Component和@resource的使用
- spring学习笔记7--使用spring进行面向切面的(AOP)编程(1)注解方式实现