java后端开发-笔记

1.何时用VO类?VO类作用?

 PO里的属性 主要是用来给数据库用的 ;
PO:每个属性基本上都对应数据库表里面的某个字段,一般要实现序列化接口,有时也继承一些类。
而VO里的属性 就是纯给用户显示的 ;
VO:实际返回给用户的视图对象。


2.springboot中Example类?


3.用创建maven项目后,在pom文件中加上<packaging>pom</packaging>,意味着什么?


4.@Repository

用在持久层接口上,将接口的实现类交给spring管理


5.pom文件报错:Element 'project' cannot have character [children], because the type's content type is element-only.

pom文件中出现非法字符


6.什么时候用getMapping、postMapping?

@PostMapping和@GetMapping都可以用@RequestMapping代替。

@GetMapping:
直接从URL获得数据,以www.xxx.com/?id=1类似这种形式传输。
举例:

在这里插入图片描述

这个URL中,请求来到后端,并且是一个Get方法,那么selectById就会接受到一个id=1这样的参数。

@PostMapping
请求会从body部分拿到数据,好处是一些不希望用户看到的数据会放在body里面传输。
举例
在这里插入图片描述
这个post方法,pageNum和pageSize数据都在body里面而不是在url里。

1. 基于 Restful 制作表现层接口
新增:POST
删除:DELETE
修改:PUT
查询:GET
2. 接收参数
实体数据:@RequestBody
路径变量:@PathVariable

7.什么是跨域问题?

页面报错:

Access to XMLHttpRequest at 'http://localhost:9001/admin/hosp/schedule/getScheduleRule/1/7/1000_0/200040878' from origin 'http://localhost:9528' has been blocked by CORS policy: Response to preflight request doesn't pass access control check: No 'Access-Control-Allow-Origin' header is present on the requested resource.
request.js:57 errError: Network Error

 

解决方法:在controller文件中,加注解@CrossOrigin


8. springboot的pom文件加上springweb的依赖,才能使用springmvc的注解功能。

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
@RestController
@RequestMapping("/book")
public class TestController {

    @GetMapping("/hello")
    public String getById(){
        System.out.println("hello~~~~");
        return "Lee!";
    }
}

9.为什么经常要先定义接口,再写实现类,直接就在这个类中写实现方法岂不是更便捷?

        软件设计原则里有个开闭原则,即在程序需要进行拓展的时候,不能去修改原有的代码,实现一个热插拔的效果。简言之,是为了使程序的扩展性好,易于维护和升级。想要达到这样的效果,我们需要使用接口和抽象类。

        因为抽象灵活性好,适应性广, 只要抽象的合理 ,可以基本保持软件架构的稳定。而软件中易变的细节 可以从抽象派生来的实现类来进行扩展, 当软件需要发生变化时,只需要根据需求重新派生一个实现类来扩展就可以了。
         如果没有接口,自己写实现类,需要发生时,要直接修改源代码。而此时则不用,只需要重写实现类就行。
例如:
        开发者开发搜狗输入法皮肤,对搜狗而言,它只定义接口,各个开发者实现接口类。因为各个开发者按照规定接口开发,符合规范,搜狗输入法就可以调用开发者的实现类,从而展现各种皮肤。但搜狗并不知道开发者写了什么实现类,它只是去调用而已。接口是个规范。

10. @ResponseBody注解含义。

告知SpringMVC框架,不进行视图跳转,直接进行数据响应。

SpringMVC需要配置xml文件:

    <!--配置内部资源视图解析器-->
    <!-- 完整路径: /jsp/success.jsp  -->
    <bean id="viewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver">
        <property name="prefix" value="/jsp/"></property>
        <property name="suffix" value=".jsp"></property>
    </bean>

如下示例。

    @RequestMapping(value="/quick7")
//    @ResponseBody  //告知SpringMVC框架 不进行视图跳转 直接进行数据响应
    public String save7() throws IOException {
        return "success";
    }

不加@ResponseBody,将跳转到页面/jsp/success.jsp,即webapp下的jsp/success.jsp页面。

加上@ResponseBody,不进行视图(页面)跳转,直接进行数据响应,在页面上输出success

Guess you like

Origin blog.csdn.net/li1593891525/article/details/120856198