springmvc的一些知识点

数据校验

在这里插入图片描述
在前端传入数据的时候spring是不知道数据的格式的,由于模型与表单绑定了,所以只要在模型中指定数据的格式已经类型即可。

JSR303的使用
需要在将pojo作为传参的前面加上@valid注解,另外pojo上面加上检测注解即可

jdbc的实现过程:

1.注册驱动
Drivermanager.register(new com.mysql.jdbc.Driver());
//或者是classforname
2.获取连接
connection con = Drivermanager.getconnection(url:“jdbc:mysql://localost:3306/test”,user:“root”,password:“123”)
3.获取操作数据库的预处理对象
prepareStatement pstm = con.prepareStatement(“select * form table”)
4.执行sql,得到结果集
Result rs = pstm.executeQuery();
5.遍历结果集
while(rs.next){
sout(rs.getString(“name”));
}
6.释放资源
rs.close;
pstm.close
con.close

这里耦合性太大,所以用反射,但是反射的时候里面的字符串写死了,所以最好用配置文件。
在这里插入图片描述

自己编写解耦话,其实是用工厂模式,现在配置文件中写好对应的路径,这个路径通过反射生成对应的bean(可重复私使用的类),这就需要使用map集合,通过遍历propertity配置文件中的类容进行获取到所有的bean以key,value的形式保存在map集合中,当程序 中需要使用的时候就根据key的值返回value即可。
在这里插入图片描述
然后是IOC的原理,ioc是自己的xml文件管理了所有的bean(这里相当于自己手动编写的工厂模式的那部分类容封装了),然后需要使用的时候需要首先读取到这个xml文件,通过applicationContext的classpathxmlApplocationContext实现类获取到该文件,根据getbean方法获取到bean。

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

applicationContext是容器一创建所有的bean就创建,适用于单例
而beanfactory是延迟创建,什么时候需要用到什么时候才创建。适用于多例情况下。
好在spring是一个非常强大的框架,能够判断用户的创建用户的需求自动化,实际情况下多数用的是前者applicationContext

创建bean的三种方式

在这里插入图片描述

  1. 通过自带的构造方法,spring中的默认就是通过构造方法来的,这里是无参构造函数才行
  2. 通过类中的某方法,这里有点像配置类中的方法,上面加了@Bean注解,
  3. 通过静态方法
    在这里插入图片描述

在这里插入图片描述

依赖注入

在这里插入图片描述

在这里插入图片描述
需要注意的是,这这里面的三个基本数据的包装类也是依赖注入。

使用构造函数进行依赖注入

在这里插入图片描述
在这里插入图片描述
由于构造函数时带有参数的,这里找到参数的类型(type index name)都可以找到到底要注入哪一个,name是我们平时用得最多的,然后ref由于有时间日期,所以多增加了一个日期bean,通过ref注入到accountservice得Bean中。
要创建一个没有依赖得bean时,需要提供无参构造器。

set方法注入

在这里插入图片描述

基于注解的Spring Bean管理

在这里插入图片描述

  • componment注解
    在这里插入图片描述
    注意需要加这个
    在这里插入图片描述
    需要注意的是

需要注意的是,不是废弃了xml文件,这里还是需要xml文件的。

在这里插入图片描述

用于注入数据的注解:

  • Autowired
    在这里插入图片描述
    通过类型在springIOC容器中找,看那个类型是可以匹配的。
    当有多个可以匹配的时候先圈定匹配的Bean,然后在圈定的bean中按照自己的类名继续查找。
    在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
配合使用。
在这里插入图片描述

在这里插入图片描述
这一部分内容原来是外部jar包的需要添加到IOC容器中的bean,由于外部jar无法通过注解配置,那么如何在xml中省略呢?答案是配置文件
在这里插入图片描述

完全省略xml文件,

利用注解版的applicationContext:
在这里插入图片描述

现在就算是去掉那个@configration注解也不会报错,原因是这里的参数直接指定了读取这个类里面的配置。
但是如果我们再添加一个config文件的话,这时候就需要加上这个@configration注解,
在这里插入图片描述
不然componmentscan就不知道新加的config是配置类,另外的解决办法是在

  • annotationConfigApplicationContext的参数里面多加入newConfig.class。
    在这里插入图片描述
  • 使用import将新的config导进来。
    在这里插入图片描述

property的引入

现在的问题是
在这里插入图片描述
这里面的数据写死了,可以提取出来。
实现方式是,

  • jdbc.propertity里面写全局的配置参数。
    在这里插入图片描述

  • 然后在配置文件中使用@value注解
    在这里插入图片描述

  • 最后让工程读取到propertity文件
    在这里插入图片描述

提示:springboot中自带的application.propertity不需要使用propertysource去索引,springboot默认已经加载。

@ConfigurationProperties:

告诉SpringBoot将本类中的所有属性和配置文件中相关的配置进行绑定;
  prefix = “xxx”:配置文件中哪个下面的所有属性进行一一映射

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值