Speaker Mark Heckler @mkheck
For more, see the table of contents
Notes
- Developers don’t believe in magic
- Most developers are bad at debugging. Or at least not as good as they could be
- We got sloppy when we get used to thinking we know what’s happening
- Important to isolate problem and not just symptoms
Code wakthru
- @SpringBootApplication – meta-annotation. Enables the other scaning annotations
- @SpringBootConfiguration
- @EnableAutoConfiguration
- @ComponentScan
- Starter parent pom has dpendencies that have been tested together. Provided in dependency management so can choose what need
- Proved @Component still creates a @Bean
- SpringApplication.run returns a ConfigurableApplicationContext. We don’t typically use it directly, but can look into it.
- ApplicationRunner (creates prop object from args) vs CommandLineRunner (has args as array). The later is slightly more efficient.
- @Value lets you get a property
Overwriting name
- application.properties with wrong key name. Typo causes code not to use the value
- application.yaml – ignored; still uses application.properties because higher precedence
Actuator
- Can expose a lot of info
- By default, opens two endpoints, status and one other. If want actual info, allow by privilege.
- Can expose everything via management.endpoints.webexposure.include=* (don’t do this in prod)
- loalhost:8080/actuator – see endpoints
- localhost:8080/actuator/env – see java version, list of beans, etc (so can see order)
Remote debugging
- In IDE config, set -agentib:jdwp=transport=dt_socket,server.. (missed the end)
Container
- Can set config in Docker fil.
Key point
You don’t know. You can suspect and hypothesize, but not assume.
My take
I like that Mark showed Spring source code to show what was happening. It took a long time to get to the first thing that went wrong (missing property).. (40 minutes in; another session was already applauding by then). Once he got to that part, I started learning stuff. Mark also seemed rushed for the end and that info went too fast for me. (Combo if it being new and I think he was going faster) Also, the using the audience members as names in the example was fun.