想要调用其他类的私有方法就需要使用反射
什么时候需要构造器?
当对象实例化时,就需要使用到构造器,要么有参要么无参。
get、set方法的作用:
为了不让外面能调用自己封装起来的数据,只提供get、set方法,通过get、set方法就使用和访问这些数据。
什么是重载?
重载。就是相同的方法名,但是参数不同。
什么是lambda表达式:
https://blog.csdn.net/weixin_40839731/article/details/79594897
我们知道,对于一个Java变量,我们可以赋给其一个“值”。
如果你想把“一块代码”赋给一个Java变量,应该怎么做呢?
比如,我想把右边那块代码,赋给一个叫做aBlockOfCode的Java变量:
在Java 8之前,这个是做不到的。但是Java 8问世之后,利用Lambda特性,就可以做到了。
当然,这个并不是一个很简洁的写法。所以,为了使这个赋值操作更加elegant, 我们可以移除一些没用的声明。
这样,我们就成功的非常优雅的把“一块代码”赋给了一个变量。而“这块代码”,或者说“这个被赋给一个变量的函数”,就是一个Lambda表达式。
成员变量也叫做属性
原始数据类型=基本数据类型
Spring5创建对象
配置文件方式:
先在xml配置文件中的bean标签中写,id随便取,最好是后面class的小写, class中写类全路径
光写完不够,还需要有一个IOC容器实现方式,有两种 BeanFactory和 )ApplicationContext
加载配置文件后可以获取创建实例的对象
getBean方法可以获取配置创建的对象,getBean中前面写的是bean标签中的id,后面写的是类名
value用于注入属性,如果要注入对象用ref
生命周期中要使用初始化方法和对象销毁方法都需要在配置文件中进行配置
后置处理器需要实现这个接口
然后还需要在配置文件中写
自动装配
Java中DAO层、Service层和Controller层的区别
DAO层:
叫做数据访问层,全称为date access object ,是一种比较底层,比较基础的操作,具体到某个表的增删改查,也就是说某个dao一定是和数据库的某张表一一对应,其中封装了增删改查的操作。建议Dao只做原子操作,增删改查。
Service层:
叫服务层,被称为服务,粗略的理解就是对一个dao 或者多个dao进行再次封装,封装成一个服务,所以这里就不会是一个原子操作了,需要事务控制。
需要根据系统的实际业务需求进行逻辑代码的编写,有些业务逻辑需要通过与数据库交互的,则业务逻辑层需要调用数据访问层(dao)的相关方法实现与数据库的交互,对于一些不需要与数据库进行交互的,则直接编写业务代码,将执行结果反馈给(Controller)即可;
Controller层:
负责请求转发,接收页面过来的参数,传给service处理,接到返回值,再传给页面。只负责与数据库的数据交互,将数据进行存储读取操作
总结:
个人理解DAO面向表,Service面向业务。后端开发时先数据库设计出所有表,然后对每一张表设计出DAO层,然后根据具体的业务逻辑进一步封装DAO层成一个Service层,对外提供成一个服务
注解方式
value里的值等于原本的bean标签的id值,如果不写默认是类名称首字母小写。
@Mapper 注解的作用
1.不用再写映射配置文件了
2.在运行过程中调用时生成代理对象,执行接口方法,对该方法进行增强。这里的增强就是指jdbc的那一套流程。
@Mapper注解标记这个接口作为一个映射接口
纯注解开发配置文件
HTTP报文的流动方向:
一次HTTP请求,HTTP报文会从“客户端”流到“代理”再流到“服务器”,在服务器工作完成之后,报文又会从“服务器”流到“代理”再流到“客户端”。
客户端(浏览器)发送了一个请求到服务器,服务器就需要响应一个响应报文给客户端。就比如提交了一个表单,服务器就需要响应回一个什么东西给客户端。
为什么要有构造器
因为new对象的时候默认调用空参构造器,没有空参构造器就没法造对象
有参构造器的作用
为什么要new对象
当需要用到一个类(接口、抽象类除外)的时候,需要new来进行初始化,才可以调用该类的方法、属性、变量等。比如: