###### tags: `Template Notes` `Java`
# WOS - Part 1 Starter Template
---
- Make sure to Command + Shift + o when editing the class and interface files to get the proper imports
## Step #1:
- See [Full Java Project Starter Notes](/qUu9Pfj-REiapIrri6tkjQ) on what to include for the files in this step
- Start a new spring app
- edit pom file
- create WEB-INF folder
- Start adding the known jsp pages
- edit application.properties
- be sure to add db name
- create db in workbench
- in static folder create js and css folders
- add .css and .js files to their folders
## Step #2:
- add 4 packages to the src/main/java > package that is there
- controllers
- models
- repositories
- services
## Step #3:
- Start working in Controllers package
- Create 1st controller class
```java!=
@Controller
public class HomeController {
@Autowired
private <>Service <>Service;
@GetMapping("/")
public String index() {
return "index.jsp";
}
}
```
- Since <>Service is not created yet create that class inside the service package
```java!=
@Service
public class <>Service {
@Autowired
private <>Repository <>Repository;
}
```
- Since <>Repository isn't made yet create that interface in the repositories package
```java!=
@Repository
public interface <>Repository extends CrudRepository<<className>, Long> {
}
```
- Next we need to create our (className) model to import into the repository
```java!=
@Entity
@Table(name="className")
public class ClassName {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
private String <columnName>;
private String <columnName>;
private String <columnName>;
private String <columnName>;
@Column(updatable = false)
@DateTimeFormat(pattern = "yyy-MM-dd")
private Date createdAt;
@DateTimeFormat(pattern = "yyy-MM-dd")
private Date updatedAt;
// Constructor
public <ClassName>() {
}
<!-- Here you will right click > Source > Generate Constructor Using Feilds > Uncheck id, createdAt and updatedAt -->
<!-- It should fill in the constructor function -->
<!-- Here you will right click again > Source > Generate Getters and Setters > Select all -->
<!-- They will be filled in here -->
@PrePersist
protected void onCreate() {
this.createdAt = new Date();
}
@PreUpdate
protected void onUpdate() {
this.updatedAt = new Date();
}
}
```
## Step #4:
- Once the model file is done be sure to go back up the line in how each was created above and check the imports
- At this point all should be good to test the server
- Right click the top folder of this app
- Chose run as > Spring boot app
- If all is good there should be no errors
- open browser and go to localhost:8080