- Hands-On Microservices with Kotlin
- Juan Antonio Medina Iglesias
- 459字
- 2021-06-30 19:10:55
Modifying our microservice
Now, let's navigate in our code so we can edit it for adding some changes.
- In the Project window that is on the top-left side of the screen, expand src | main | Kotlin to view our source files
- Then we can open our packages until we see our application: Chapter2Application.kt
package com.microservices.chapter2
import org.springframework.boot.autoconfigure.SpringBootApplication
import org.springframework.boot.runApplication
@SpringBootApplication
class Chapter2Application
fun main(args: Array<String>) {
runApplication<Chapter2Application>(*args)
}
This code will create and run a Spring Boot application, that will launch a microservice listening on port 8080.
We can see that, in the gutter area of the Edit Window, there is a Kotlin symbol in the same line that our main function is. If we click on it, we can run this function and it will launch our microservice and a Run window will appear that allows us to view the log, stop, or restart the process.
Now, let's modify the example code:
package com.microservices.chapter2
import org.springframework.boot.autoconfigure.SpringBootApplication
import org.springframework.boot.runApplication
import org.springframework.stereotype.Controller
import org.springframework.web.bind.annotation.RequestMapping
import org.springframework.web.bind.annotation.RequestMethod
import org.springframework.web.bind.annotation.ResponseBody
@SpringBootApplication
class Chapter2Application
@Controller
class FirstController {
@RequestMapping(value = "/user", method = arrayOf(RequestMethod.GET))
@ResponseBody
fun hello() = "hello world"
}
fun main(args: Array<String>) {
runApplication<Chapter2Application>(*args)
}
If we run the application now and go to the browser to the URL http://localhost:8080/user/, we will see the following:
hello world
This small change adds a controller, basically a class that will handle requests to our microservice, and then we add a mapping for a particular path, in this example /user, then it will output hello world to any request.
Now, let's create a new class, in the project window, right-click on our package, and then choose New | Kotlin File / Class.

A new window will appear asking us for the name, let's type ExampleService and choose Class in the Kind dropdown.

Then, we will add this code:
package com.microservices.chapter2
import org.springframework.stereotype.Service
@Service
class ExampleService {
fun getHello(name : String) = "hello $name"
}
Finally, we can modify our controller to use this newly created service:
package com.microservices.chapter2
import org.springframework.boot.autoconfigure.SpringBootApplication
import org.springframework.boot.runApplication
import org.springframework.stereotype.Controller
import org.springframework.web.bind.annotation.PathVariable
import org.springframework.web.bind.annotation.RequestMapping
import org.springframework.web.bind.annotation.RequestMethod
import org.springframework.web.bind.annotation.ResponseBody
@SpringBootApplication
class Chapter2Application
@Controller
class FirstController(val exampleService: ExampleService) {
@RequestMapping(value = "/user/{name}", method = arrayOf(RequestMethod.GET))
@ResponseBody
fun hello(@PathVariable name: String) = exampleService.getHello(name)
}
fun main(args: Array<String>) {
runApplication<Chapter2Application>(*args)
}
We set an exampleService instance as an attribute of our controller; then, to create our output, we will get the name of the user that we greet as a path variable and we will call the service to get the result.
Executing the service and going to the URL http://localhost:8080/user/Kotlin, will output the following:
hello Kotlin
- SPSS數(shù)據(jù)挖掘與案例分析應(yīng)用實踐
- 工程軟件開發(fā)技術(shù)基礎(chǔ)
- HoloLens Beginner's Guide
- 編程卓越之道(卷3):軟件工程化
- YARN Essentials
- OpenStack Orchestration
- Nagios Core Administration Cookbook(Second Edition)
- C++ Application Development with Code:Blocks
- HTML+CSS+JavaScript網(wǎng)頁制作:從入門到精通(第4版)
- Modular Programming with JavaScript
- 實戰(zhàn)Python網(wǎng)絡(luò)爬蟲
- Using Yocto Project with BeagleBone Black
- Python應(yīng)用開發(fā)技術(shù)
- C++服務(wù)器開發(fā)精髓
- Swift Essentials(Second Edition)