https://matthung0807.blogspot.com/2019/02/java-json.html

package com.demo;

import org.springframework.boot.SpringApplication;
import com.demo.*;

import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.web.servlet.ServletComponentScan;

import static org.junit.Assert.assertEquals;

import java.util.Arrays;
import java.util.Map;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpSession;

import org.apache.catalina.filters.CorsFilter;
import org.omg.CORBA.Environment;
import org.springframework.boot.CommandLineRunner;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.context.ApplicationContext;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.ComponentScan;
import org.springframework.context.annotation.Configuration;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.CrossOrigin;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.cors.CorsConfiguration;
import org.springframework.web.cors.UrlBasedCorsConfigurationSource;
import org.springframework.web.servlet.ModelAndView;
import org.springframework.web.servlet.config.annotation.CorsRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurerAdapter;

import com.demo.controller.HelloController;
import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.model.Dome;
import com.model.Dome2;
import com.model.Shop;
@ComponentScan(basePackages = {"com.demo.controller"}) 

@Controller

@RestController
@RequestMapping("/")
@EnableAutoConfiguration
@CrossOrigin(origins = "http://172.16.7.21:9527", maxAge = 3600)
public class DemoApplication {
//	  @RequestMapping("/test/{test}")
//	  @ResponseBody
//	    public String sayHello(@PathVariable("test") String test) {
//		   System.out.print("test");
//	        return   new HelloController().sayHello("hello");
//	    }

	  @RequestMapping(value = "/hello", method = RequestMethod.GET)
	  public ModelAndView hello(Map<String,Object> map){
	  map.put("key","value");
	  ModelAndView modelAndView = new ModelAndView();
	  modelAndView.setViewName("web");
	  modelAndView.addObject(map);
	  return modelAndView;
	  }
	  
	public static void main(String[] args) throws Exception  {
		SpringApplication.run(DemoApplication.class, args);
	
	}

	@RequestMapping("/add")
	public String addSession(HttpServletRequest httpServletRequest,
							@RequestParam("username")String username) {
		HttpSession session = httpServletRequest.getSession();
		session.setAttribute("username",username);
		session.setMaxInactiveInterval(10000);
		return "添加成功";
	}
	
	@RequestMapping("/show")
	// 跨網域
	public Object showSession(HttpServletRequest httpServletRequest) {
		HttpSession session = httpServletRequest.getSession();
		Object object = session.getAttribute("username");
		return object;
	}
//
//		@Configuration
//	   private CorsConfiguration buildConfig() {
//	        CorsConfiguration corsConfiguration = new CorsConfiguration();
//	        corsConfiguration.addAllowedOrigin("*"); // 1
//	        corsConfiguration.addAllowedHeader("*"); // 2
//	        corsConfiguration.addAllowedMethod("*"); // 3
//	        return corsConfiguration;
//	    }
//	 
//	    @Bean
//	    public CorsFilter corsFilter() {
//	        UrlBasedCorsConfigurationSource source = new UrlBasedCorsConfigurationSource();
//	        source.registerCorsConfiguration("/**", buildConfig()); // 4
//	        return new CorsFilter();
//	    }
//	//    跨網域
	  @Bean
	    public WebMvcConfigurer corsConfigurer() {
	        return new WebMvcConfigurer() {
	            @Override
	            public void addCorsMappings(CorsRegistry registry) {
	                registry.addMapping("/httpMethod/**")
	                        .allowedOrigins("http://localhost:9528");//允许域名访问,如果*,代表所有域名
	                //.allowedOrigins("http://localhost:9527");//允许域名访问,如果*,代表所有域名
	                registry.addMapping("/httpMethod2/**")
                    .allowedOrigins("http://localhost:9527");//允许域名访问,如果*,代表所有域名
	            }
	        };
	    }
	@CrossOrigin
	@RequestMapping(value = "/httpMethod")
	@ResponseBody
	public Shop httpMethod(){
//	System.out.println("sent name is "+  params.get("name").toString());
//	System.out.println("sent pwd is "+  params.get("pwd").toString());
//
//	  
	  Shop memberAccount = new Shop();
	  
//	if( params.get("name").equals("admin")   &&  params.get("pwd").equals("111111" ) ) {
//		
		memberAccount.set_name( "test");
		memberAccount.set_pwd ("test2");
		
		return memberAccount;
		}
//	}
//	return memberAccount;
//	}

	Dome memberAccount;
@CrossOrigin
@PostMapping(value = "/httpMethod", produces = "application/json")
@ResponseBody
public Dome  httpMethod(@RequestBody Map<String, Object> params) throws JsonProcessingException{
System.out.println("sent name is "+  params.get("name").toString());
System.out.println("sent pwd is "+  params.get("pwd").toString());
if( params.get("name").equals("admin")   &&  params.get("pwd").equals("111111" ) ) {
	Dome memberAccount = new Dome();
    
	memberAccount.setId(1);
	memberAccount.setName("张三");
	Dome2 tmp = new Dome2();
	tmp.setName("qwe");
	memberAccount.setBook(tmp);
	memberAccount.setlist(new String[] {"qwhewqao","hawqeouhao","keyi"});
	ObjectMapper objectMapper = new ObjectMapper();

	String userJsonStr = objectMapper.writeValueAsString(memberAccount);
	System.out.print(userJsonStr);
	return memberAccount;
}
return memberAccount;
}

	@CrossOrigin
    @GetMapping("/httpMethod2")
	@ResponseBody
	public String httpMethod2(){
	System.out.println("sent name is ");
	System.out.println("sent pwd is ");
	return "success";
	}
}

搞錯方向

Select a repo