接触java后端服务也有2年多,近期工作的事情放下后,才能安心巩固spring的基础内容
首先开始熟悉web.xml配置以及ioc原理等。由于IOC不是太扎实,目前从头开始,后续博客中有错误的地方希望大家也指出。共同进步
1 新建一个springmvc的项目后,新建一个对象User.java
private static int id;
private static String name;
private static int age;
private static Date birthDay;
public static int getId() {
return id;
}
public void setId(int id) {
User.id = id;
}
public static String getName() {
return name;
}
public void setName(String name) {
User.name = name;
}
public static int getAge() {
return age;
}
public void setAge(int age) {
User.age = age;
}
public static Date getBirthDay() {
return birthDay;
}
public void setBirthDay(Date birthDay) {
User.birthDay = birthDay;
}
public static String tostr() {
return "User{" +
"id=" + User.id +
", name='" + User.name + '\'' +
", age=" + User.age +
", birthDay=" + User.birthDay +
'}';
}
通过静态属性来定义全局的一些变量。
新建springioc.xml,并添加bean
<bean id="user" class="com.czm.vo.User">
<property name="id" value="1"/>
<property name="age" value="2"/>
<property name="name" value="chenzm"/>
</bean>
在web.xml中配置好配置文件,该User.java内部的静态属性值则可以在全局使用。
2: 在Controller对象中自动装配上下文对象,通过上下文获取
@Controller
@RequestMapping("user")
public class TestController {
@Autowired
ApplicationContext context;
@RequestMapping("getUser")
@ResponseBody
public String getUser(){
User user = (User) context.getBean("user");
return "hello world!";
}
3:通过实现ApplicationContextInitializer获取
package com.czm.vo;
import org.springframework.context.ApplicationContextInitializer;
import org.springframework.context.ConfigurableApplicationContext;
import org.springframework.stereotype.Component;
import java.util.Date;
@Component
public class User implements ApplicationContextInitializer {
private int id;
private String name;
private int age;
private Date birthDay;
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 int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public Date getBirthDay() {
return birthDay;
}
public void setBirthDay(Date birthDay) {
this.birthDay = birthDay;
}
@Override
public String toString() {
return "User{" +
"id=" + id +
", name='" + name + '\'' +
", age=" + age +
", birthDay=" + birthDay +
'}';
}
@Override
public void initialize(ConfigurableApplicationContext configurableApplicationContext) {
configurableApplicationContext.refresh();
User user = (User) configurableApplicationContext.getBean("user");
}
}
以上是近期琢磨出的一些方法。具体深层次的原因,由于对IOC概念还是不太清楚,后续再补充