Using Angular 15 with Java Spring

Using Angular 15 with Java Spring

Angular 15 is a popular front-end JavaScript framework for building web applications, and Java Spring is a popular back-end Java framework for building web applications. Together, Angular and Java Spring can be used to build powerful full-stack web applications.

One way to use Angular 15 with Java Spring is to have the Angular 15 application make HTTP requests to the Java Spring application to retrieve and update data. This can be done using Angular's built-in HTTP client.

For example, say we have a Java Spring application that exposes a REST API for creating, reading, updating, and deleting (CRUD) products. We can use Angular's HTTP client to make requests to this API to display a list of products, add a new product, update a product, and delete a product.

First, we need to import the HTTP client module in our Angular 15 component or service:

import { HttpClient } from '@angular/common/http';

Next, we can use the HTTP client to make a GET request to retrieve a list of products:

constructor(private http: HttpClient) { }

ngOnInit() {
  this.http.get<Product[]>('/api/products').subscribe(products => {
    this.products = products;
  });
}

We can also use the HTTP client to make POST, PUT, and DELETE requests to create, update, and delete products:

addProduct(name: string) {
  const product = { name: name };
  this.http.post<Product>('/api/products', product).subscribe(product => {
    this.products.push(product);
  });
}

updateProduct(product: Product) {
  this.http.put<Product>('/api/products/' + product.id, product).subscribe(() => {
    // update the product in the products list
  });
}

deleteProduct(product: Product) {
  this.http.delete<Product>('/api/products/' + product.id).subscribe(() => {
    // remove the product from the products list
  });
}

On the Java Spring side, we can use the @RestController annotation to create a REST controller with API endpoints for handling these requests:

@RestController
@RequestMapping("/api")
public class ProductController {

  @GetMapping("/products")
  public List<Product> getAllProducts() {
    // retrieve all products from database
  }

  @PostMapping("/products")
  public Product createProduct(@RequestBody Product product) {
    // create product in database and return created product
  }

  @PutMapping("/products/{id}")
  public Product updateProduct(@PathVariable Long id, @RequestBody Product product) {
    // update product in database and return updated product
  }

  @DeleteMapping("/products/{id}")
  public void deleteProduct(@PathVariable Long id) {
    // delete product from database
  }

}

Another way to use Angular 15 with Java Spring is to serve the Angular 15 application from the Java Spring application. This can be done by building the Angular 15 application and placing the resulting files in the Java Spring application's `src/main