Spring Web 开发实践

Spring 3.0 版本。

@Path("/student") // 父 Path
@Produce({"application/json"})
public class StudentEndPoint {
  
  // Spring 2.5 开始提供了 @Autowired 自动装配,替换了基于 set 方法的依赖注入模式
  @Autowired StudentService service;

  @Get // HTTP 动词对应的 Restful
  @Produces({"application/json"})
  @Path("/info")
  public void getInfo(@QueryParam("id") String id) {
    ...
  }
  
  @Post // HTTP 动词对应的 Restful
  @Comsumes(MediaType.APPLICATION.JSON)
  @Path("/info")
  public void updateInfo(String payload) {
    ...
  }
}

@Component 注解

作用:把普通的 POJO 实例化为 Spring 容器中的 Bean。
例如:

@Component
public class StudentService {
  ...
}

通过 @Component 注解,则 无需 添加如下的 Bean 配置:


  ...

自动装配

Spring 2.5 开始提供了基于注解的自动装配机制来简化依赖注入。

  • ** @Autowired**:基于 类型 的自动装配注入
  • ** @Resource**:基于 名称 的自动装配注入

例如:

public class StudentService {
  @Resource(name="studentDAO")
  StudentDAO studentDAO;
}

以上的 @Resource 代码替换了如下的操作:

// set 方法
public void setStudentDAO(StudentDAO studentDAO) {
  this.studentDAO = studentDAO;
}


  
  
  ...

关于 PUT 和 DELETE 动词

浏览器本身不支持 PUT 和 DELETE 动词。

解决方法:
HTTP 的 Header 中加入一个特殊字段 _method,Spring 中加入 HiddenHttpMethodFilter

你可能感兴趣的:(Spring Web 开发实践)