我试图发现豆如何工作,也试图遵循春季官方豆教程(http://docs.spring.io/spring/docs/1.2.x/reference/beans.html)。春豆和类
我想写一个应用程序,它只是加载一个bean.xml文件,并从它获取一个bean,将其设置为一个变量。
Car car = (Car) beans.getBean("car");
这正是我bean.xml看起来像:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd">
<beans>
<bean id="person" class="com.vlad.myapp.Person">
<property name="name"><value>"Bob"</value></property>
<property name="lastName"><value>"Bobson"</value></property>
<property name="id"><value>1</value></property>
</bean>
</beans>
这里是我的Person.java类:
package com.vlad.myapp;
public class Person {
private String name;
private String last_name;
private int id;
public Person(String name,String last_name,int id)
{
this.name = name;
this.last_name = last_name;
this.id = id;
}
public String name()
{
return name;
}
public String last_name(){
return last_name;
}
public int id()
{
return id;
}
public void setName(String name){
this.name = name;
}
public void setLastName(String name){
this.last_name = name;
}
public void setId(int id)
{
this.id = id;
}
}
在我的控制,我试图加载bean文件并获取其中的一个bean,如Car示例中所示:
ClassPathXmlApplicationContext beans = new ClassPathXmlApplicationContext("bean.xml");
Person person = (Person) beans.getBean("person");
model.addAttribute("person",person);
return "home";
在视图我想简单地打印出人的名字:
<p>The person's name is: ${person.name()}</p>
但是,所有我从我的网页获得加载时是:
这个人的名字是:
看起来好像视图无法获取变量?
这里是我的目录结构:
为什么你阅读文档的Spring 1.2的版?目前的Spring版本是4.0.2。 1.2已完全过时。 –
@JBNizet看起来好像我无法找到关于spring bean的最新教程。语法改变了多少?这种方法过时了吗?我见过最近的教程使用 – Bula
http://docs.spring.io/spring/docs/4.0.x/spring-framework-reference/htmlsingle/。它直接从春季主页链接:http://spring.io。但是,您应该首先了解并尊重Java命名约定和Java Bean约定。此外,你不应该从你的控制器创建一个新的Spring上下文来获取bean。相反,这个bean应该被注入到控制器中。这是依赖注入的关键。是的,1.2是完全过时的,特别是当涉及到Spring MVC时。 –