优点
Spring 是轻量级,非入侵式的框架,控制反转(IOC),面向切面编程(AOP),支持事务的处理,对框架的整合。 轻量级级的控制翻转和面向切面编程的框架。
缺点
配置十分繁琐
Spring的7大模块
Spring 文档
IOC 控制反转
思想:获得依赖注入的方式反转了,通过控制层动态的调用指定Service方法
使用无参构造创建对象
在配置文件加载的时候,容器中管理的对象就已经初始化了
//获取Spring的上下文对象
ApplicationContext context = new
ClassPathXmlApplicationContext("beans.xml");
Spring 版本网址:repo.spring.io
Spring Maven地址
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-webmvc</artifactId>
<version>5.3.15</version>
</dependency>
Spring的配置
设置别名:
<alias name="hello" alias="hello2"></alias>
依赖注入
构造器注入
set方式注入 依赖:bean对象的创建依赖于容器
注入:bean对象中的所有属性,由容器注入
Bean的作用域
单例模式(singleton)
原型模式(prototype)
每一次从容重get中都会产生一个新对象
request,session,application 这些只能在web开发 中使用到
自动装配
满足bean依赖的一种方式,在上下文中自动寻找并自动给bean装配属性
1、在xml中显示配置
2、在Java中显示配置
3、隐式的自动装配*
autowire="byName" 在上下文中自动对象set方法后面的值对应的beanid
autowire="byType" byType 在上下文中自动对象属性相同的beanid
导入Context 约束
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:context="http://www.springframework.org/schema/context"
xmlns:aop="http://www.springframework.org/schema/aop"
xsi:schemaLocation="http://www.springframework.org/schema/beans
https://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/context
https://www.springframework.org/schema/context/spring-context.xsd
http://www.springframework.org/schema/aop
https://www.springframework.org/schema/aop/spring-aop.xsd" >
```
# 开启注解的支持
```
```
自动装配 当无法通过@Autowired使用时可以使用@Qualifier(value = "xxx")去配置@Autowired的使用 ,指定一个唯一的bean对象注入
@Autowired
@Qualifier(value = "xxx")
private cat cat;
@Nullable 可以让字段为null
required属性为false 说明这个为null
public @interface Autowired {
boolean required() default true;
}
@Resource 与 @Autowired 的区别
都是用来自动装配都可以放到属性字段上的
@Autowired通过ByType的方式实现,而且必须要求这个对象存在,@Autowired如果不能唯一自动装配属性 应使用@Nullable
@Resource默认通过ByName的方式实现,如果找不到名字则通过byType事项!如果两个都找不到的情况下就报错
执行顺序不同:@Autowired通过ByType的方式实现 ,@Resource默认通过ByName的方式实现
指定要扫描的包 这个包下的注解生效
<context:component-scan base-package="com.fan.pojo"/>
放到类上被spring管理了
@Component
放到类上被spring管理了
@Component
相当于Spring Bean中的value
@Value
dao层注解 组件
@Repository