joplin-notes/joplin notion extension/Web Development/Java/Spring/Extras.md
2026-11-04 00:33:23 +05:30

3.8 KiB

Extras

  • parsing json using jackson https://mkyong.com/java/jackson-how-to-parse-json/ How to parse JSON string with Jackson - Mkyong.com.pdf How to parse JSON string with Jackson - Mkyong.com (22_9_2024 8_29_12 am).html

    
      package com.example.demo;
    
      import org.springframework.boot.SpringApplication;
      import org.springframework.boot.autoconfigure.SpringBootApplication;
      import org.springframework.boot.json.*;
    
      import com.fasterxml.jackson.databind.JsonNode;
      import com.fasterxml.jackson.databind.ObjectMapper;
    
    
      @SpringBootApplication
      public class DemoApplication {
    
    
      	public static void main(String[] args) throws Exception{
      		SpringApplication.run(DemoApplication.class, args);
      		ObjectMapper objectMapper= new ObjectMapper();
      		JsonNode obj=objectMapper.readTree("[\"java is oops\", \"java is not oops\", \"java is annoying\"]");
      		if(obj.isArray()){
      			for(int i=0;i<obj.size();i++){
      				System.out.println(obj.get(i).asText());
    
      			}
      		}
    
      	}
    
      }
    
    
    
    
  • for json array to List<String>

     import com.fasterxml.jackson.databind.ObjectMapper;
     List<String> options= objmapper.readValue(q.getOptions(), objmapper.getTypeFactory().constructCollectionType(List.class, String.class));
    
  • spring cors https://spring.io/guides/gs/rest-service-cors

     package com.example.restservicecors;
    
     import java.util.concurrent.atomic.AtomicLong;
    
     import org.springframework.web.bind.annotation.CrossOrigin;
     import org.springframework.web.bind.annotation.GetMapping;
     import org.springframework.web.bind.annotation.RequestParam;
     import org.springframework.web.bind.annotation.RestController;
    
     @RestController
     public class GreetingController {
    
     	private static final String template = "Hello, %s!";
    
     	private final AtomicLong counter = new AtomicLong();
     	@CrossOrigin(origins = "http://localhost:9000")
     	@GetMapping("/greeting")
     	public Greeting greeting(@RequestParam(required = false, defaultValue = "World") String name) {
     		System.out.println("==== get greeting ====");
     		return new Greeting(counter.incrementAndGet(), String.format(template, name));
     	}
    
     }
    

  Array.map equivalent in java

    List<Integer> correctOptions = questionsResponses.stream().map(questionsResponse-> questionsResponse.getCorrectOptionNumber()).toList();
  • converting biginteger into int int questionID = ((BigInteger) questionResponseMap.get("questionID")).intValue();
  • when using dependency
      <dependency>
     	    <groupId>org.springframework.boot</groupId>
     	    <artifactId>spring-boot-starter-security</artifactId>
    </dependency>
    

by default it adds authentication layer for accessing rest api, if that is not needed then it can be disabled by adding following bean

package com.example.demo; // Adjust the package name as needed

import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.security.config.annotation.web.builders.HttpSecurity;
import org.springframework.security.config.annotation.web.configuration.EnableWebSecurity;
import org.springframework.security.web.SecurityFilterChain;

@Configuration
@EnableWebSecurity
public class SecurityConfig {

    @Bean
    public SecurityFilterChain securityFilterChain(HttpSecurity http) throws Exception {
        http
                .authorizeRequests()
                .anyRequest().permitAll() // Allow all requests
                .and()
                .csrf().disable(); // Optionally disable CSRF protection

        return http.build();
    }
}