Skip to content

Commit 1472665

Browse files
committed
Adding source files for web app
1 parent 7498629 commit 1472665

File tree

4 files changed

+99
-0
lines changed

4 files changed

+99
-0
lines changed

src/main/java/guru/springframework/bootstrap/ProductLoader.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,7 @@ public void onApplicationEvent(ContextRefreshedEvent event) {
3838
mug.setDescription("Spring Framework Guru Mug");
3939
mug.setImageUrl("https://springframework.guru/wp-content/uploads/2015/04/spring_framework_guru_coffee_mug-r11e7694903c348e1a667dfd2f1474d95_x7j54_8byvr_512.jpg");
4040
mug.setProductId("168639393495335947");
41+
mug.setPrice(new BigDecimal("11.95"));
4142
productRepository.save(mug);
4243

4344
log.info("Saved Mug - id:" + mug.getId());
Lines changed: 55 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,55 @@
1+
package guru.springframework.controllers;
2+
3+
import guru.springframework.domain.Product;
4+
import guru.springframework.services.ProductService;
5+
import org.springframework.beans.factory.annotation.Autowired;
6+
import org.springframework.stereotype.Controller;
7+
import org.springframework.ui.Model;
8+
import org.springframework.web.bind.annotation.PathVariable;
9+
import org.springframework.web.bind.annotation.RequestMapping;
10+
import org.springframework.web.bind.annotation.RequestMethod;
11+
12+
@Controller
13+
public class ProductController {
14+
15+
private ProductService productService;
16+
17+
@Autowired
18+
public void setProductService(ProductService productService) {
19+
this.productService = productService;
20+
}
21+
22+
@RequestMapping(value = "/products", method = RequestMethod.GET)
23+
public String list(Model model){
24+
model.addAttribute("products", productService.listAllProducts());
25+
System.out.println("Returning rpoducts:");
26+
return "products";
27+
}
28+
29+
@RequestMapping("product/{id}")
30+
public String showProduct(@PathVariable Integer id, Model model){
31+
model.addAttribute("product", productService.getProductById(id));
32+
return "productshow";
33+
}
34+
35+
@RequestMapping("product/edit/{id}")
36+
public String edit(@PathVariable Integer id, Model model){
37+
model.addAttribute("product", productService.getProductById(id));
38+
return "productform";
39+
}
40+
41+
@RequestMapping("product/new")
42+
public String newProduct(Model model){
43+
model.addAttribute("product", new Product());
44+
return "productform";
45+
}
46+
47+
@RequestMapping(value = "product", method = RequestMethod.POST)
48+
public String saveProduct(Product product){
49+
50+
productService.saveProduct(product);
51+
52+
return "redirect:/product/" + product.getId();
53+
}
54+
55+
}
Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
package guru.springframework.services;
2+
3+
4+
import guru.springframework.domain.Product;
5+
6+
public interface ProductService {
7+
Iterable<Product> listAllProducts();
8+
9+
Product getProductById(Integer id);
10+
11+
Product saveProduct(Product product);
12+
}
Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
package guru.springframework.services;
2+
3+
import guru.springframework.domain.Product;
4+
import guru.springframework.repositories.ProductRepository;
5+
import org.springframework.beans.factory.annotation.Autowired;
6+
import org.springframework.stereotype.Service;
7+
8+
@Service
9+
public class ProductServiceImpl implements ProductService {
10+
private ProductRepository productRepository;
11+
12+
@Autowired
13+
public void setProductRepository(ProductRepository productRepository) {
14+
this.productRepository = productRepository;
15+
}
16+
17+
@Override
18+
public Iterable<Product> listAllProducts() {
19+
return productRepository.findAll();
20+
}
21+
22+
@Override
23+
public Product getProductById(Integer id) {
24+
return productRepository.findOne(id);
25+
}
26+
27+
@Override
28+
public Product saveProduct(Product product) {
29+
return productRepository.save(product);
30+
}
31+
}

0 commit comments

Comments
 (0)