Angular 2和Spring之间的数据流

时间:2016-11-17 06:17:36

标签: java spring angular

我即将开始我的第一个真正的工作项目(新毕业),我的任务是为公司创建一个内部地址簿(显示姓名,电话分机号码,电子邮件等)。

我的导师告诉我,我需要从Active Directory中提取地址数据。

他还告诉我,我需要在前端使用Angular 2,在后端使用Spring。我仍然需要学习这些框架,但他意识到这正是他给我这个任务的原因。

但是,我正在努力理解框架之间的数据流。

这是我到目前为止所想的http://imgur.com/a/xiH6m

enter image description here

如果有人能够解释图表的正确与错误,并解释数据如何在这样的项目中流动。我更愿意用更具体的问题打扰我的导师。

2 个答案:

答案 0 :(得分:3)

使用Spring创建一个REST服务,将数据作为JSON返回。您可以在服务器端使用简单的POJO,而Spring的转换器应将其转换为JSON。也许像是

@RestController
public class EmployeesController {

    @Autowired
    private LdapService service;

    @RequestMapping(value = "/employees/{empId}")
    public Employee getEmployee(@PathVariable("empId") Long empId) {
        Employee emp = ldapService.getEmployee(empId);
        return emp;
    }
}

使用Spring,它应该在出站响应上将Employee对象转换为JSON(假设您已配置JSON转换器)。

在Angular中,只需向端点发出一个简单的Http请求,然后您将获得JSON,您可以将其转换为客户端的Employee对象。也许像是

class Employee {
  // employee properties
}

@Injectable()
class EmployeeService {
  constructor(private http: Http) {}

  getEmployee(empId: number): Observable<Employee> {
    return this.http.get(`${empBaseUrl}/${empId}`)
      .map(res => res.json() as Employee)
  }
}

此处,在服务中,您向服务器上的员工端点发出Http请求,并将结果作为JSON返回,您将其转换为res.json()的对象并进行转换它到Employee

这就是它。

答案 1 :(得分:1)

您的&#34;转换为有用的格式&#34;不会自己发生。那里需要一个Controller层。 REST控制器准确。

AngularJS 2可以轻松使用REST。您可以使用Spring MVC创建可以生成JSON响应的REST控制器。

例如,您可以拥有端点

GET /contacts/data

将返回

[
    {"name":"ABC",
     "email":"someone@abc.com",
     "telephone":"0101010101"
    },
    ...
]

以下的春天documentation将是一个很好的起点,尽管它讨论的是Angularjs 1.