当前位置: 首页 > news >正文

一站式做网站技术看片代码 python

一站式做网站技术,看片代码 python,全国小微企业名录查询官网,植物园门户网站建设方案前言#xff1a;请求响应 目录 一 引子 二 请求 2.1 Postman 2.1.1 安装 2.1.2 创建工作空间 2.1.3 添加接口 2.2 简单参数 2.2.1 原始方式#xff08;不推荐#xff09; 2.2.2 SpringBoot方式-GET(参数名与形参变量名相同) 2.2.3 SpringBoot方式-POST(参数名与形参… 前言请求响应 目录 一  引子 二 请求 2.1 Postman 2.1.1 安装 2.1.2 创建工作空间 2.1.3 添加接口 2.2 简单参数 2.2.1 原始方式不推荐 2.2.2 SpringBoot方式-GET(参数名与形参变量名相同) 2.2.3 SpringBoot方式-POST(参数名与形参变量名相同) 2.2.4 SpringBoot方式-POST(参数名与形参变量名不相同) 2.2.5 RequestParam注解决SpringBoot方式-POST(参数名与形参变量名不相同) 2.3 实体参数 2.3.1 简单的实体类参数 2.3.1.1 创建实体类User 2.3.1.2 创建接口 2.3.2 复杂实体参数 2.3.2.1 创建实体类Address 2.3.2.2 修改实体类User 2.3.2.3 创建接口 2.4 数组集合参数 2.4.1 数组参数 2.4.2 集合参数 2.5 日期参数 2.6 Json参数 2.7 路径参数 2.7.1 单个路径参数 2.7.2 多个路径参数 2.8 总结 三 响应 3.1 Responbody响应示例发现不便管理、难以维护​编辑 3.1.1 创建类ResponseController  3.1.2 执行结果 3.1.2.1 返回字符串 ​编辑3.1.2.2 返回对象json ​编辑 3.1.2.3 返回集合json ​编辑3.2 统一响应结果 3.2.1 统一结果处理类Result 3.2.2 优化类ResponseController 3.2.3 执行结果返回统一 3.3 总结 3.4 统一响应结果的案例 3.4.1 分析步骤 3.4.2 引入dom4j  3.4.3 引入工具类XmlParserUtils  3.4.4 引入实体类 Emp 3.4.5 引入emp.xml文件 3.4.6 引入前端页面 3.4.7 新增EmpController类 3.4.8 访问 3.4.9 思考 四 分层解耦 4.1 三层架构 4.1.1 概述 4.1.2 Dao层 4.1.2.1  新增EmpDao接口 4.1.2.2 新增EmpDaoA实现类 4.1.3 Service层 4.1.3.1 新增EmpService接口 4.1.3.2 新增EmpServiceA实现类 4.1.3 Controller层 4.1.3.1 优化EmpController 4.1.4 对比 4.2 分层解耦 4.2.1 解耦 4.3 IOC控制反转 DI依赖注入入门 4.3.1 优化EmpDaoA实现类 ’4.3.2 优化EmpServiceA实现类 4.3.3 优化EmpController类 4.3.4 如何更改为:实现类EmpserviceB 4.3.5 总结 4.4 IOC详解 4.4.1 优化EmpDaoA实现类 ’4.4.2 优化EmpServiceA实现类 4.4.3 优化EmpController类 4.4.4 bean组件扫描 4.4.5 总结 4.5 DI详解 4.5.1 Primary 4.5.2 Qualifier 4.5.3 Resource 4.5.3 总结 一  引子 二 请求 2.1 Postman 2.1.1 安装 略 2.1.2 创建工作空间 2.1.3 添加接口 2.2 简单参数 2.2.1 原始方式不推荐 2.2.2 SpringBoot方式-GET(参数名与形参变量名相同) 2.2.3 SpringBoot方式-POST(参数名与形参变量名相同) 2.2.4 SpringBoot方式-POST(参数名与形参变量名不相同) 参数不同 获取null 2.2.5 RequestParam注解决SpringBoot方式-POST(参数名与形参变量名不相同) 此问题是解决2.2.4的问题 package com.runa.controller;import jakarta.servlet.http.HttpServletRequest; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.RestController;RestController public class RequestController { // //原始方式 // RequestMapping(/simpleParam) // public String simpleParam(HttpServletRequest request){//获取请求参数 // String name request.getParameter(name); // String ageStr request.getParameter(age); // int age Integer.parseInt(ageStr); // // System.out.println(name : age); // return ok; // }//SpringBoot 方式 GET POST 都可以(参数名与形参变量名相同) // RequestMapping(/simpleParam) // public String simpleParam(String name, Integer age){ // //获取请求参数 // System.out.println(name : age); // return ok; // }//SpringBoot 方式 GET POST 都可以(参数名与形参变量名不相同) // RequestMapping(/simpleParam) // public String simpleParam(String username, Integer age){ // //获取请求参数 // System.out.println(username : age); // return ok; // }//SpringBoot 方式 GET POST 都可以(参数名与形参变量名不相同)RequestMapping(/simpleParam)public String simpleParam(RequestParam(namename)String username, Integer age){ //RequestParam(namename, required false)//获取请求参数System.out.println(username : age);return ok;} }2.3 实体参数 2.3.1 简单的实体类参数 2.3.1.1 创建实体类User package com.runa.pojo;public class User {private String name;private Integer age;public String getName() {return name;}public void setName(String name) {this.name name;}public Integer getAge() {return age;}public void setAge(Integer age) {this.age age;}Overridepublic String toString() {return User{ name name \ , age age };} }2.3.1.2 创建接口 package com.runa.controller;import com.runa.pojo.User; import jakarta.servlet.http.HttpServletRequest; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.RestController;RestController public class RequestController {// 1、 简单参数 // //原始方式 // RequestMapping(/simpleParam) // public String simpleParam(HttpServletRequest request){//获取请求参数 // String name request.getParameter(name); // String ageStr request.getParameter(age); // int age Integer.parseInt(ageStr); // // System.out.println(name : age); // return ok; // }//SpringBoot 方式 GET POST 都可以(参数名与形参变量名相同) // RequestMapping(/simpleParam) // public String simpleParam(String name, Integer age){ // //获取请求参数 // System.out.println(name : age); // return ok; // }//SpringBoot 方式 GET POST 都可以(参数名与形参变量名不相同) // RequestMapping(/simpleParam) // public String simpleParam(String username, Integer age){ // //获取请求参数 // System.out.println(username : age); // return ok; // }//SpringBoot 方式 GET POST 都可以(参数名与形参变量名不相同)RequestMapping(/simpleParam)public String simpleParam(RequestParam(namename)String username, Integer age){ //RequestParam(namename, required false)//获取请求参数System.out.println(username : age);return ok;}// 2 实体参数RequestMapping(/simplePojo)public String simplePojo(User user){//获取请求参数System.out.println(user);return ok;}}2.3.2 复杂实体参数 2.3.2.1 创建实体类Address package com.runa.pojo;public class Address {private String province;private String city;public String getProvince() {return province;}public void setProvince(String province) {this.province province;}public String getCity() {return city;}public void setCity(String city) {this.city city;}Overridepublic String toString() {return Address{ province province \ , city city \ };} }2.3.2.2 修改实体类User package com.runa.pojo;public class User {private String name;private Integer age;private Address address;public String getName() {return name;}public Address getAddress() {return address;}public void setAddress(Address address) {this.address address;}public void setName(String name) {this.name name;}public Integer getAge() {return age;}public void setAge(Integer age) {this.age age;}Overridepublic String toString() {return User{ name name \ , age age , address address };} }2.3.2.3 创建接口 package com.runa.controller;import com.runa.pojo.User; import jakarta.servlet.http.HttpServletRequest; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.RestController;RestController public class RequestController {// 1、 简单参数 // //原始方式 // RequestMapping(/simpleParam) // public String simpleParam(HttpServletRequest request){//获取请求参数 // String name request.getParameter(name); // String ageStr request.getParameter(age); // int age Integer.parseInt(ageStr); // // System.out.println(name : age); // return ok; // }//SpringBoot 方式 GET POST 都可以(参数名与形参变量名相同) // RequestMapping(/simpleParam) // public String simpleParam(String name, Integer age){ // //获取请求参数 // System.out.println(name : age); // return ok; // }//SpringBoot 方式 GET POST 都可以(参数名与形参变量名不相同) // RequestMapping(/simpleParam) // public String simpleParam(String username, Integer age){ // //获取请求参数 // System.out.println(username : age); // return ok; // }//SpringBoot 方式 GET POST 都可以(参数名与形参变量名不相同)RequestMapping(/simpleParam)public String simpleParam(RequestParam(namename)String username, Integer age){ //RequestParam(namename, required false)//获取请求参数System.out.println(username : age);return ok;}// 2 实体参数//2.1 简单的实体参数RequestMapping(/simplePojo)public String simplePojo(User user){//获取请求参数System.out.println(user);return ok;}//2.1 复杂的实体参数RequestMapping(/complexPojo)public String complexPojo(User user){System.out.println(user);return ok;}}2.4 数组集合参数 2.4.1 数组参数 package com.runa.controller;import com.runa.pojo.User; import jakarta.servlet.http.HttpServletRequest; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.RestController;import java.util.Arrays;RestController public class RequestController {// 1、 简单参数 // //原始方式 // RequestMapping(/simpleParam) // public String simpleParam(HttpServletRequest request){//获取请求参数 // String name request.getParameter(name); // String ageStr request.getParameter(age); // int age Integer.parseInt(ageStr); // // System.out.println(name : age); // return ok; // }//SpringBoot 方式 GET POST 都可以(参数名与形参变量名相同) // RequestMapping(/simpleParam) // public String simpleParam(String name, Integer age){ // //获取请求参数 // System.out.println(name : age); // return ok; // }//SpringBoot 方式 GET POST 都可以(参数名与形参变量名不相同) // RequestMapping(/simpleParam) // public String simpleParam(String username, Integer age){ // //获取请求参数 // System.out.println(username : age); // return ok; // }//SpringBoot 方式 GET POST 都可以(参数名与形参变量名不相同)RequestMapping(/simpleParam)public String simpleParam(RequestParam(namename)String username, Integer age){ //RequestParam(namename, required false)//获取请求参数System.out.println(username : age);return ok;}// 2 实体参数//2.1 简单的实体参数RequestMapping(/simplePojo)public String simplePojo(User user){//获取请求参数System.out.println(user);return ok;}//2.2 复杂的实体参数RequestMapping(/complexPojo)public String complexPojo(User user){System.out.println(user);return ok;}// 3 数组集合参数// 3.1 数组参数RequestMapping(/arrayParam)public String arrayParam(String[] hobby){System.out.println(Arrays.toString(hobby));return ok;}}2.4.2 集合参数 package com.runa.controller;import com.runa.pojo.User; import jakarta.servlet.http.HttpServletRequest; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.RestController;import java.util.Arrays; import java.util.List;RestController public class RequestController {// 1、 简单参数 // //原始方式 // RequestMapping(/simpleParam) // public String simpleParam(HttpServletRequest request){//获取请求参数 // String name request.getParameter(name); // String ageStr request.getParameter(age); // int age Integer.parseInt(ageStr); // // System.out.println(name : age); // return ok; // }//SpringBoot 方式 GET POST 都可以(参数名与形参变量名相同) // RequestMapping(/simpleParam) // public String simpleParam(String name, Integer age){ // //获取请求参数 // System.out.println(name : age); // return ok; // }//SpringBoot 方式 GET POST 都可以(参数名与形参变量名不相同) // RequestMapping(/simpleParam) // public String simpleParam(String username, Integer age){ // //获取请求参数 // System.out.println(username : age); // return ok; // }//SpringBoot 方式 GET POST 都可以(参数名与形参变量名不相同)RequestMapping(/simpleParam)public String simpleParam(RequestParam(namename)String username, Integer age){ //RequestParam(namename, required false)//获取请求参数System.out.println(username : age);return ok;}// 2 实体参数//2.1 简单的实体参数RequestMapping(/simplePojo)public String simplePojo(User user){//获取请求参数System.out.println(user);return ok;}//2.2 复杂的实体参数RequestMapping(/complexPojo)public String complexPojo(User user){System.out.println(user);return ok;}// 3 数组集合参数// 3.1 数组参数RequestMapping(/arrayParam)public String arrayParam(String[] hobby){System.out.println(Arrays.toString(hobby));return ok;}// 3.2 集合参数RequestMapping(/listParam)public String listParam(RequestParam ListString hobby){System.out.println(hobby);return ok;}}2.5 日期参数 package com.runa.controller;import com.runa.pojo.User; import jakarta.servlet.http.HttpServletRequest; import org.springframework.format.annotation.DateTimeFormat; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.RestController;import java.time.LocalDateTime; import java.util.Arrays; import java.util.List;RestController public class RequestController {// 1、 简单参数 // //原始方式 // RequestMapping(/simpleParam) // public String simpleParam(HttpServletRequest request){//获取请求参数 // String name request.getParameter(name); // String ageStr request.getParameter(age); // int age Integer.parseInt(ageStr); // // System.out.println(name : age); // return ok; // }//SpringBoot 方式 GET POST 都可以(参数名与形参变量名相同) // RequestMapping(/simpleParam) // public String simpleParam(String name, Integer age){ // //获取请求参数 // System.out.println(name : age); // return ok; // }//SpringBoot 方式 GET POST 都可以(参数名与形参变量名不相同) // RequestMapping(/simpleParam) // public String simpleParam(String username, Integer age){ // //获取请求参数 // System.out.println(username : age); // return ok; // }//SpringBoot 方式 GET POST 都可以(参数名与形参变量名不相同)RequestMapping(/simpleParam)public String simpleParam(RequestParam(namename)String username, Integer age){ //RequestParam(namename, required false)//获取请求参数System.out.println(username : age);return ok;}// 2 实体参数//2.1 简单的实体参数RequestMapping(/simplePojo)public String simplePojo(User user){//获取请求参数System.out.println(user);return ok;}//2.2 复杂的实体参数RequestMapping(/complexPojo)public String complexPojo(User user){System.out.println(user);return ok;}// 3 数组集合参数// 3.1 数组参数RequestMapping(/arrayParam)public String arrayParam(String[] hobby){System.out.println(Arrays.toString(hobby));return ok;}// 3.2 集合参数RequestMapping(/listParam)public String listParam(RequestParam ListString hobby){System.out.println(hobby);return ok;}// 4 日期时间参数RequestMapping(/dataParam)public String dataParam(DateTimeFormat(pattern yyyy-MM-dd HH:mm:ss) LocalDateTime updateTime){System.out.println(updateTime);return ok;}}2.6 Json参数 package com.runa.controller;import com.runa.pojo.User; import jakarta.servlet.http.HttpServletRequest; import org.springframework.format.annotation.DateTimeFormat; import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.RestController;import java.time.LocalDateTime; import java.util.Arrays; import java.util.List;RestController public class RequestController {// 1、 简单参数 // //原始方式 // RequestMapping(/simpleParam) // public String simpleParam(HttpServletRequest request){//获取请求参数 // String name request.getParameter(name); // String ageStr request.getParameter(age); // int age Integer.parseInt(ageStr); // // System.out.println(name : age); // return ok; // }//SpringBoot 方式 GET POST 都可以(参数名与形参变量名相同) // RequestMapping(/simpleParam) // public String simpleParam(String name, Integer age){ // //获取请求参数 // System.out.println(name : age); // return ok; // }//SpringBoot 方式 GET POST 都可以(参数名与形参变量名不相同) // RequestMapping(/simpleParam) // public String simpleParam(String username, Integer age){ // //获取请求参数 // System.out.println(username : age); // return ok; // }//SpringBoot 方式 GET POST 都可以(参数名与形参变量名不相同)RequestMapping(/simpleParam)public String simpleParam(RequestParam(namename)String username, Integer age){ //RequestParam(namename, required false)//获取请求参数System.out.println(username : age);return ok;}// 2 实体参数//2.1 简单的实体参数RequestMapping(/simplePojo)public String simplePojo(User user){//获取请求参数System.out.println(user);return ok;}//2.2 复杂的实体参数RequestMapping(/complexPojo)public String complexPojo(User user){System.out.println(user);return ok;}// 3 数组集合参数// 3.1 数组参数RequestMapping(/arrayParam)public String arrayParam(String[] hobby){System.out.println(Arrays.toString(hobby));return ok;}// 3.2 集合参数RequestMapping(/listParam)public String listParam(RequestParam ListString hobby){System.out.println(hobby);return ok;}// 4 日期时间参数RequestMapping(/dataParam)public String dataParam(DateTimeFormat(pattern yyyy-MM-dd HH:mm:ss) LocalDateTime updateTime){System.out.println(updateTime);return ok;}// 5 json 参数RequestMapping(/jsonParam)public String jsonParam(RequestBody User user){System.out.println(user);return ok;}}2.7 路径参数 2.7.1 单个路径参数 package com.runa.controller;import com.runa.pojo.User; import jakarta.servlet.http.HttpServletRequest; import org.springframework.format.annotation.DateTimeFormat; import org.springframework.web.bind.annotation.*;import java.time.LocalDateTime; import java.util.Arrays; import java.util.List;RestController public class RequestController {// 1、 简单参数 // //原始方式 // RequestMapping(/simpleParam) // public String simpleParam(HttpServletRequest request){//获取请求参数 // String name request.getParameter(name); // String ageStr request.getParameter(age); // int age Integer.parseInt(ageStr); // // System.out.println(name : age); // return ok; // }//SpringBoot 方式 GET POST 都可以(参数名与形参变量名相同) // RequestMapping(/simpleParam) // public String simpleParam(String name, Integer age){ // //获取请求参数 // System.out.println(name : age); // return ok; // }//SpringBoot 方式 GET POST 都可以(参数名与形参变量名不相同) // RequestMapping(/simpleParam) // public String simpleParam(String username, Integer age){ // //获取请求参数 // System.out.println(username : age); // return ok; // }//SpringBoot 方式 GET POST 都可以(参数名与形参变量名不相同)RequestMapping(/simpleParam)public String simpleParam(RequestParam(namename)String username, Integer age){ //RequestParam(namename, required false)//获取请求参数System.out.println(username : age);return ok;}// 2 实体参数//2.1 简单的实体参数RequestMapping(/simplePojo)public String simplePojo(User user){//获取请求参数System.out.println(user);return ok;}//2.2 复杂的实体参数RequestMapping(/complexPojo)public String complexPojo(User user){System.out.println(user);return ok;}// 3 数组集合参数// 3.1 数组参数RequestMapping(/arrayParam)public String arrayParam(String[] hobby){System.out.println(Arrays.toString(hobby));return ok;}// 3.2 集合参数RequestMapping(/listParam)public String listParam(RequestParam ListString hobby){System.out.println(hobby);return ok;}// 4 日期时间参数RequestMapping(/dataParam)public String dataParam(DateTimeFormat(pattern yyyy-MM-dd HH:mm:ss) LocalDateTime updateTime){System.out.println(updateTime);return ok;}// 5 json 参数RequestMapping(/jsonParam)public String jsonParam(RequestBody User user){System.out.println(user);return ok;}// 6 路径 参数RequestMapping(/path/{id})public String pathParam(PathVariable Integer id){System.out.println(id);return ok;}}2.7.2 多个路径参数 package com.runa.controller;import com.runa.pojo.User; import jakarta.servlet.http.HttpServletRequest; import org.springframework.format.annotation.DateTimeFormat; import org.springframework.web.bind.annotation.*;import java.time.LocalDateTime; import java.util.Arrays; import java.util.List;RestController public class RequestController {// 1、 简单参数 // //原始方式 // RequestMapping(/simpleParam) // public String simpleParam(HttpServletRequest request){//获取请求参数 // String name request.getParameter(name); // String ageStr request.getParameter(age); // int age Integer.parseInt(ageStr); // // System.out.println(name : age); // return ok; // }//SpringBoot 方式 GET POST 都可以(参数名与形参变量名相同) // RequestMapping(/simpleParam) // public String simpleParam(String name, Integer age){ // //获取请求参数 // System.out.println(name : age); // return ok; // }//SpringBoot 方式 GET POST 都可以(参数名与形参变量名不相同) // RequestMapping(/simpleParam) // public String simpleParam(String username, Integer age){ // //获取请求参数 // System.out.println(username : age); // return ok; // }//SpringBoot 方式 GET POST 都可以(参数名与形参变量名不相同)RequestMapping(/simpleParam)public String simpleParam(RequestParam(namename)String username, Integer age){ //RequestParam(namename, required false)//获取请求参数System.out.println(username : age);return ok;}// 2 实体参数//2.1 简单的实体参数RequestMapping(/simplePojo)public String simplePojo(User user){//获取请求参数System.out.println(user);return ok;}//2.2 复杂的实体参数RequestMapping(/complexPojo)public String complexPojo(User user){System.out.println(user);return ok;}// 3 数组集合参数// 3.1 数组参数RequestMapping(/arrayParam)public String arrayParam(String[] hobby){System.out.println(Arrays.toString(hobby));return ok;}// 3.2 集合参数RequestMapping(/listParam)public String listParam(RequestParam ListString hobby){System.out.println(hobby);return ok;}// 4 日期时间参数RequestMapping(/dataParam)public String dataParam(DateTimeFormat(pattern yyyy-MM-dd HH:mm:ss) LocalDateTime updateTime){System.out.println(updateTime);return ok;}// 5 json 参数RequestMapping(/jsonParam)public String jsonParam(RequestBody User user){System.out.println(user);return ok;}// 6 路径 参数// 6。1 单个路径 参数RequestMapping(/path/{id})public String pathParam(PathVariable Integer id){System.out.println(id);return ok;}// 6。2 多个路径 参数RequestMapping(/path/{id}/{name})public String pathParam(PathVariable Integer id, PathVariable String name){System.out.println(id : name);return ok;}}2.8 总结 三 响应 3.1 Responbody响应示例发现不便管理、难以维护 3.1.1 创建类ResponseController  package com.runa.controller;import com.runa.pojo.Address; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController;import java.util.ArrayList; import java.util.List;/*** 测试响应数据*/RestController public class ResponseController {RequestMapping(/helloWorld)public String helloWorld(){System.out.println(Hello World ~);return Hello World ~;}RequestMapping(/getAddr)public Address getAddr(){Address addr new Address();addr.setProvince(云南);addr.setCity(大理);return addr;}RequestMapping(/listAddr)public ListAddress listAddr(){ListAddress list new ArrayList();Address addr new Address();addr.setProvince(云南);addr.setCity(大理);Address addr2 new Address();addr2.setProvince(新疆);addr2.setCity(乌鲁木齐);list.add(addr);list.add(addr2);return list;}}3.1.2 执行结果 3.1.2.1 返回字符串 3.1.2.2 返回对象json 3.1.2.3 返回集合json 3.2 统一响应结果 3.2.1 统一结果处理类Result package com.runa.pojo;/*** 统一响应结果封装类*/ public class Result {private Integer code ;//1 成功 , 0 失败private String msg; //提示信息private Object data; //数据 datapublic Result() {}public Result(Integer code, String msg, Object data) {this.code code;this.msg msg;this.data data;}public Integer getCode() {return code;}public void setCode(Integer code) {this.code code;}public String getMsg() {return msg;}public void setMsg(String msg) {this.msg msg;}public Object getData() {return data;}public void setData(Object data) {this.data data;}public static Result success(Object data){return new Result(1, success, data);}public static Result success(){return new Result(1, success, null);}public static Result error(String msg){return new Result(0, msg, null);}Overridepublic String toString() {return Result{ code code , msg msg \ , data data };} }3.2.2 优化类ResponseController package com.runa.controller;import com.runa.pojo.Address; import com.runa.pojo.Result; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController;import java.util.ArrayList; import java.util.List;/*** 测试响应数据*/RestController public class ResponseController {RequestMapping(/helloWorld)public Result helloWorld(){System.out.println(Hello World ~); // return new Result(1,success,Hello World);return Result.success(Hello World ~);}RequestMapping(/getAddr)public Result getAddr(){Address addr new Address();addr.setProvince(云南);addr.setCity(大理);return Result.success(addr);}RequestMapping(/listAddr)public Result listAddr(){ListAddress list new ArrayList();Address addr new Address();addr.setProvince(云南);addr.setCity(大理);Address addr2 new Address();addr2.setProvince(新疆);addr2.setCity(乌鲁木齐);list.add(addr);list.add(addr2);return Result.success(list);}} 3.2.3 执行结果返回统一 3.3 总结 3.4 统一响应结果的案例 3.4.1 分析步骤 3.4.2 引入dom4j  !-- 解析XML -- dependencygroupIdorg.dom4j/groupIdartifactIddom4j/artifactIdversion2.1.3/version /dependency 3.4.3 引入工具类XmlParserUtils  package com.runa.utils;import org.dom4j.Document; import org.dom4j.Element; import org.dom4j.io.SAXReader; import java.io.File; import java.lang.reflect.Constructor; import java.lang.reflect.Field; import java.util.ArrayList; import java.util.List;public class XmlParserUtils {public static T ListT parse(String file , ClassT targetClass) {ArrayListT list new ArrayListT(); //封装解析出来的数据try {//1.获取一个解析器对象SAXReader saxReader new SAXReader();//2.利用解析器把xml文件加载到内存中,并返回一个文档对象Document document saxReader.read(new File(file));//3.获取到根标签Element rootElement document.getRootElement();//4.通过根标签来获取 user 标签ListElement elements rootElement.elements(emp);//5.遍历集合,得到每一个 user 标签for (Element element : elements) {//获取 name 属性String name element.element(name).getText();//获取 age 属性String age element.element(age).getText();//获取 image 属性String image element.element(image).getText();//获取 gender 属性String gender element.element(gender).getText();//获取 job 属性String job element.element(job).getText();//组装数据ConstructorT constructor targetClass.getDeclaredConstructor(String.class, Integer.class, String.class, String.class, String.class);constructor.setAccessible(true);T object constructor.newInstance(name, Integer.parseInt(age), image, gender, job);list.add(object);}} catch (Exception e) {e.printStackTrace();}return list;}}3.4.4 引入实体类 Emp package com.runa.pojo;public class Emp {private String name;private Integer age;private String image;private String gender;private String job;public Emp() {}public Emp(String name, Integer age, String image, String gender, String job) {this.name name;this.age age;this.image image;this.gender gender;this.job job;}public String getName() {return name;}public void setName(String name) {this.name name;}public Integer getAge() {return age;}public void setAge(Integer age) {this.age age;}public String getImage() {return image;}public void setImage(String image) {this.image image;}public String getGender() {return gender;}public void setGender(String gender) {this.gender gender;}public String getJob() {return job;}public void setJob(String job) {this.job job;}Overridepublic String toString() {return Emp{ name name \ , age age , image image \ , gender gender \ , job job \ };} }3.4.5 引入emp.xml文件 ?xml version1.0 encodingUTF-8 ? empsempname金毛狮王/nameage55/ageimagehttps://web-framework.oss-cn-hangzhou.aliyuncs.com/web/1.jpg/image!-- 1: 男, 2: 女 --gender1/gender!-- 1: 讲师, 2: 班主任 , 3: 就业指导 --job1/job/empempname白眉鹰王/nameage65/ageimagehttps://web-framework.oss-cn-hangzhou.aliyuncs.com/web/2.jpg/imagegender1/genderjob1/job/empempname青翼蝠王/nameage45/ageimagehttps://web-framework.oss-cn-hangzhou.aliyuncs.com/web/3.jpg/imagegender1/genderjob2/job/empempname紫衫龙王/nameage38/ageimagehttps://web-framework.oss-cn-hangzhou.aliyuncs.com/web/4.jpg/imagegender2/genderjob3/job/emp /emps3.4.6 引入前端页面 3.4.7 新增EmpController类 package com.runa.controller;import com.runa.pojo.Emp; import com.runa.pojo.Result; import com.runa.utils.XmlParserUtils; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController;import java.util.List;RestController public class EmpController {RequestMapping(/listEmp)public Result list(){// 1 加载并解析XML 文件String file this.getClass().getClassLoader().getResource(emp.xml).getFile();System.out.println(file);ListEmp emplist XmlParserUtils.parse(file, Emp.class);// 2 对数据进行转换处理 gender jobempList.stream().forEach(emp -{// 处理gender 1 男 2 女String gender emp.getGender();if(1.equals(gender)){emp.setGender(男);} else if (2.equals(gender)) {emp.setGender(女);}// 处理 job 1 讲师 2 班主任 3 就业指导String job emp.getJob();if(1.equals(job)){emp.setJob(讲师);} else if (2.equals(job)) {emp.setJob(班主任);}else if (3.equals(job)) {emp.setJob(就业指导);}});// 3 响应数据return Result.success(empList);} }3.4.8 访问 浏览器  http://localhost:8080/emp.html 3.4.9 思考 四 分层解耦 4.1 三层架构 4.1.1 概述 4.1.2 Dao层 4.1.2.1  新增EmpDao接口 package com.runa.dao;import com.runa.pojo.Emp;import java.util.List;public interface EmpDao {// 获取员工列表数据public ListEmp listEmap(); }4.1.2.2 新增EmpDaoA实现类 package com.runa.dao.impl;import com.runa.dao.EmpDao; import com.runa.pojo.Emp; import com.runa.utils.XmlParserUtils;import java.util.List;public class EmpDaoA implements EmpDao {Overridepublic ListEmp listEmap() {// 1 加载并解析XML 文件String file this.getClass().getClassLoader().getResource(emp.xml).getFile();System.out.println(file);ListEmp emplist XmlParserUtils.parse(file, Emp.class);return emplist;} }4.1.3 Service层 4.1.3.1 新增EmpService接口 package com.runa.service;import com.runa.pojo.Emp;import java.util.List;public interface EmpService {// 获取员工列表public ListEmp listEmp(); }4.1.3.2 新增EmpServiceA实现类 package com.runa.service.impl;import com.runa.dao.EmpDao; import com.runa.dao.impl.EmpDaoA; import com.runa.pojo.Emp; import com.runa.service.EmpService;import java.util.List;public class EmpServiceA implements EmpService {private EmpDao empDao new EmpDaoA();Overridepublic ListEmp listEmp() {//1 调用dao 获取数据ListEmp empList empDao.listEmap();// 2 对数据进行转换处理 gender jobempList.stream().forEach(emp -{// 处理gender 1 男 2 女String gender emp.getGender();if(1.equals(gender)){emp.setGender(男);} else if (2.equals(gender)) {emp.setGender(女);}// 处理 job 1 讲师 2 班主任 3 就业指导String job emp.getJob();if(1.equals(job)){emp.setJob(讲师);} else if (2.equals(job)) {emp.setJob(班主任);}else if (3.equals(job)) {emp.setJob(就业指导);}});return empList;} }4.1.3 Controller层 4.1.3.1 优化EmpController package com.runa.controller;import com.runa.pojo.Emp; import com.runa.pojo.Result; import com.runa.service.EmpService; import com.runa.service.impl.EmpServiceA; import com.runa.utils.XmlParserUtils; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController;import java.util.List;RestController public class EmpController {private EmpService empService new EmpServiceA();RequestMapping(/listEmp)public Result list(){// 1 调用service,获取数据ListEmp empList empService.listEmp();// 2 响应数据return Result.success(empList);}}启动 4.1.4 对比 4.2 分层解耦 4.2.1 解耦 4.3 IOC控制反转 DI依赖注入入门 4.3.1 优化EmpDaoA实现类 package com.runa.dao.impl;import com.runa.dao.EmpDao; import com.runa.pojo.Emp; import com.runa.utils.XmlParserUtils; import org.springframework.stereotype.Component;import java.util.List;Component // 将当前类交给IOC容器管理成为IOC容器的bean public class EmpDaoA implements EmpDao {Overridepublic ListEmp listEmap() {// 1 加载并解析XML 文件String file this.getClass().getClassLoader().getResource(emp.xml).getFile();System.out.println(file);ListEmp emplist XmlParserUtils.parse(file, Emp.class);return emplist;} }’4.3.2 优化EmpServiceA实现类 package com.runa.service.impl;import com.runa.dao.EmpDao; import com.runa.dao.impl.EmpDaoA; import com.runa.pojo.Emp; import com.runa.service.EmpService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component;import java.util.List;Component // 将当前类交给IOC容器管理成为IOC容器的bean public class EmpServiceA implements EmpService { // private EmpDao empDao new EmpDaoA();Autowired // 代表程序在运行时IOC容器会提供该类型的bean对象并赋值给该变量,依赖注入private EmpDao empDao; //解耦Overridepublic ListEmp listEmp() {//1 调用dao 获取数据ListEmp empList empDao.listEmap();// 2 对数据进行转换处理 gender jobempList.stream().forEach(emp -{// 处理gender 1 男 2 女String gender emp.getGender();if(1.equals(gender)){emp.setGender(男);} else if (2.equals(gender)) {emp.setGender(女);}// 处理 job 1 讲师 2 班主任 3 就业指导String job emp.getJob();if(1.equals(job)){emp.setJob(讲师);} else if (2.equals(job)) {emp.setJob(班主任);}else if (3.equals(job)) {emp.setJob(就业指导);}});return empList;} }4.3.3 优化EmpController类 package com.runa.controller;import com.runa.pojo.Emp; import com.runa.pojo.Result; import com.runa.service.EmpService; import com.runa.service.impl.EmpServiceA; import com.runa.utils.XmlParserUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController;import java.util.List;RestController public class EmpController { // private EmpService empService new EmpServiceA();Autowired // 代表程序在运行时IOC容器会提供该类型的bean对象并赋值给该变量,依赖注入private EmpService empService; //解耦RequestMapping(/listEmp)public Result list(){// 1 调用service,获取数据ListEmp empList empService.listEmp();// 2 响应数据return Result.success(empList);}}4.3.4 如何更改为:实现类EmpserviceB 如果要更换成新的实现类EmpserviceB只需要将EmpserviceA 的注解Component 去掉实现类EmpserviceB加上注解Component  4.3.5 总结 4.4 IOC详解 4.4.1 优化EmpDaoA实现类 package com.runa.dao.impl;import com.runa.dao.EmpDao; import com.runa.pojo.Emp; import com.runa.utils.XmlParserUtils; import org.springframework.stereotype.Component;import java.util.List;//Component // 将当前类交给IOC容器管理成为IOC容器的bean Repository public class EmpDaoA implements EmpDao {Overridepublic ListEmp listEmap() {// 1 加载并解析XML 文件String file this.getClass().getClassLoader().getResource(emp.xml).getFile();System.out.println(file);ListEmp emplist XmlParserUtils.parse(file, Emp.class);return emplist;} }’4.4.2 优化EmpServiceA实现类 package com.runa.service.impl;import com.runa.dao.EmpDao; import com.runa.dao.impl.EmpDaoA; import com.runa.pojo.Emp; import com.runa.service.EmpService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component;import java.util.List; //Component // 将当前类交给IOC容器管理成为IOC容器的bean Service public class EmpServiceA implements EmpService { // private EmpDao empDao new EmpDaoA();Autowired // 代表程序在运行时IOC容器会提供该类型的bean对象并赋值给该变量,依赖注入private EmpDao empDao; //解耦Overridepublic ListEmp listEmp() {//1 调用dao 获取数据ListEmp empList empDao.listEmap();// 2 对数据进行转换处理 gender jobempList.stream().forEach(emp -{// 处理gender 1 男 2 女String gender emp.getGender();if(1.equals(gender)){emp.setGender(男);} else if (2.equals(gender)) {emp.setGender(女);}// 处理 job 1 讲师 2 班主任 3 就业指导String job emp.getJob();if(1.equals(job)){emp.setJob(讲师);} else if (2.equals(job)) {emp.setJob(班主任);}else if (3.equals(job)) {emp.setJob(就业指导);}});return empList;} }4.4.3 优化EmpController类 package com.runa.controller;import com.runa.pojo.Emp; import com.runa.pojo.Result; import com.runa.service.EmpService; import com.runa.service.impl.EmpServiceA; import com.runa.utils.XmlParserUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController;import java.util.List;RestController //有RestController就不需要使用 Controller 因为他包含了 public class EmpController { // private EmpService empService new EmpServiceA();Autowired // 代表程序在运行时IOC容器会提供该类型的bean对象并赋值给该变量,依赖注入private EmpService empService; //解耦RequestMapping(/listEmp)public Result list(){// 1 调用service,获取数据ListEmp empList empService.listEmp();// 2 响应数据return Result.success(empList);}}4.4.4 bean组件扫描 4.4.5 总结 4.5 DI详解 4.5.1 Primary 4.5.2 Qualifier 4.5.3 Resource 4.5.3 总结
文章转载自:
http://www.morning.hsgxj.cn.gov.cn.hsgxj.cn
http://www.morning.dkcpt.cn.gov.cn.dkcpt.cn
http://www.morning.wqpb.cn.gov.cn.wqpb.cn
http://www.morning.spsqr.cn.gov.cn.spsqr.cn
http://www.morning.hmwjk.cn.gov.cn.hmwjk.cn
http://www.morning.smrkf.cn.gov.cn.smrkf.cn
http://www.morning.rblqk.cn.gov.cn.rblqk.cn
http://www.morning.hxljc.cn.gov.cn.hxljc.cn
http://www.morning.rynq.cn.gov.cn.rynq.cn
http://www.morning.przc.cn.gov.cn.przc.cn
http://www.morning.nmrtb.cn.gov.cn.nmrtb.cn
http://www.morning.gwgjl.cn.gov.cn.gwgjl.cn
http://www.morning.zdgp.cn.gov.cn.zdgp.cn
http://www.morning.frpfk.cn.gov.cn.frpfk.cn
http://www.morning.jspnx.cn.gov.cn.jspnx.cn
http://www.morning.lktjj.cn.gov.cn.lktjj.cn
http://www.morning.madamli.com.gov.cn.madamli.com
http://www.morning.rxhsm.cn.gov.cn.rxhsm.cn
http://www.morning.mnwmj.cn.gov.cn.mnwmj.cn
http://www.morning.gwyml.cn.gov.cn.gwyml.cn
http://www.morning.nydtt.cn.gov.cn.nydtt.cn
http://www.morning.rykn.cn.gov.cn.rykn.cn
http://www.morning.nrrzw.cn.gov.cn.nrrzw.cn
http://www.morning.kpmxn.cn.gov.cn.kpmxn.cn
http://www.morning.jqkjr.cn.gov.cn.jqkjr.cn
http://www.morning.dwkfx.cn.gov.cn.dwkfx.cn
http://www.morning.krwzy.cn.gov.cn.krwzy.cn
http://www.morning.xjnjb.cn.gov.cn.xjnjb.cn
http://www.morning.nmqdk.cn.gov.cn.nmqdk.cn
http://www.morning.bkkgt.cn.gov.cn.bkkgt.cn
http://www.morning.ffcsr.cn.gov.cn.ffcsr.cn
http://www.morning.mdrnn.cn.gov.cn.mdrnn.cn
http://www.morning.mxhgy.cn.gov.cn.mxhgy.cn
http://www.morning.hxsdh.cn.gov.cn.hxsdh.cn
http://www.morning.dytqf.cn.gov.cn.dytqf.cn
http://www.morning.gswfs.cn.gov.cn.gswfs.cn
http://www.morning.rbbyd.cn.gov.cn.rbbyd.cn
http://www.morning.kyfnh.cn.gov.cn.kyfnh.cn
http://www.morning.pqhfx.cn.gov.cn.pqhfx.cn
http://www.morning.qwdlj.cn.gov.cn.qwdlj.cn
http://www.morning.qjxkx.cn.gov.cn.qjxkx.cn
http://www.morning.pkpqh.cn.gov.cn.pkpqh.cn
http://www.morning.hyjpl.cn.gov.cn.hyjpl.cn
http://www.morning.benqc.com.gov.cn.benqc.com
http://www.morning.dwxqf.cn.gov.cn.dwxqf.cn
http://www.morning.qfplp.cn.gov.cn.qfplp.cn
http://www.morning.yhwxn.cn.gov.cn.yhwxn.cn
http://www.morning.mmxt.cn.gov.cn.mmxt.cn
http://www.morning.mjkqj.cn.gov.cn.mjkqj.cn
http://www.morning.hrtfz.cn.gov.cn.hrtfz.cn
http://www.morning.ypcd.cn.gov.cn.ypcd.cn
http://www.morning.pjwrl.cn.gov.cn.pjwrl.cn
http://www.morning.llxqj.cn.gov.cn.llxqj.cn
http://www.morning.kqblk.cn.gov.cn.kqblk.cn
http://www.morning.ltypx.cn.gov.cn.ltypx.cn
http://www.morning.nrpp.cn.gov.cn.nrpp.cn
http://www.morning.gwsll.cn.gov.cn.gwsll.cn
http://www.morning.gtcym.cn.gov.cn.gtcym.cn
http://www.morning.wpsfc.cn.gov.cn.wpsfc.cn
http://www.morning.ljbch.cn.gov.cn.ljbch.cn
http://www.morning.yhrfg.cn.gov.cn.yhrfg.cn
http://www.morning.phtqr.cn.gov.cn.phtqr.cn
http://www.morning.hxbjt.cn.gov.cn.hxbjt.cn
http://www.morning.bzlsf.cn.gov.cn.bzlsf.cn
http://www.morning.tmxtr.cn.gov.cn.tmxtr.cn
http://www.morning.dbxss.cn.gov.cn.dbxss.cn
http://www.morning.qrsm.cn.gov.cn.qrsm.cn
http://www.morning.kntbk.cn.gov.cn.kntbk.cn
http://www.morning.rsfp.cn.gov.cn.rsfp.cn
http://www.morning.bftr.cn.gov.cn.bftr.cn
http://www.morning.xgjhy.cn.gov.cn.xgjhy.cn
http://www.morning.wbxbj.cn.gov.cn.wbxbj.cn
http://www.morning.mfmrg.cn.gov.cn.mfmrg.cn
http://www.morning.rmqlf.cn.gov.cn.rmqlf.cn
http://www.morning.zcwzl.cn.gov.cn.zcwzl.cn
http://www.morning.ldfcb.cn.gov.cn.ldfcb.cn
http://www.morning.ydxg.cn.gov.cn.ydxg.cn
http://www.morning.lndongguan.com.gov.cn.lndongguan.com
http://www.morning.mnjwj.cn.gov.cn.mnjwj.cn
http://www.morning.fmrrr.cn.gov.cn.fmrrr.cn
http://www.tj-hxxt.cn/news/235856.html

相关文章:

  • 网站 水印网站制作公司价格
  • 微建站程序有哪些怎么建手机网站
  • 医疗网站备案要怎么做 需要准备什么材料关于网站维护的书籍
  • 网站建设公司怎么盈利wordpress域名转移
  • iis7搭建asp网站网络seo啥意思
  • 南充网站建设设计略奥网络营销存在的问题及解决对策
  • 厦门有没网站建设的公司网络舆情监测服务
  • 幸运星哪家制作公司大连谷歌seo
  • 网站首页轮播图片素材如何建造网站
  • 怎样查看网站建设时间便民信息免费发布平台
  • 外管局网站先支后收怎么做报告楼盘设计师工资一般多少
  • 免费建设网站和域名什么做直播网站
  • 手机网站营销方法软文推广的好处
  • ps做网站的效果图连锁餐饮网站建设
  • 苏州建网站制作费用多少钱盐城网站建设设计
  • opencms做网站 谁成都价格网站建设服务公司
  • 沈阳网站建站公司电子商务网站建设的范围是什么意思
  • wordpress站群 会员百度查重
  • php网站开发概念和简介网站app建设方案
  • 写作网站官方哪些网站是做采购的
  • 网站竞价 英文深圳 做网站 车公庙
  • 企业网站后台管理系统模板下载网站维护 设计
  • 网站如何做cdn怎么制作软件app流程
  • 做外贸采购都是用什么网站广西旅游网站建设
  • 商务网站开发公司楼市房价最新消息
  • 凡科建站价格深圳公司社保网站
  • 网站后台fpt企业 网站 程序
  • 做网站开票是多少个点的票项目符号在哪里设置
  • 网站建设核心点中企做网站
  • 法治建设优秀网站网站 尺寸