文章目录
spring
IOC
- 思想
把所有对象都当做Bean
通过配置 Bean 及 Bean 之间的依赖关系,
然后利用 Java 语言的反射功能实例化 Bean 并建立 Bean 之间的依赖关系。
- 原理
Spring 启动时读取应用程序提供的 Bean 配置信息,并在 Spring 容器中生成一份相应的 Bean 配
置注册表 BeanDefinitionRegistry ,然后根据这张注册表实例化 Bean,装配好 Bean 之间的依赖关系,为上层应用提供准
备就绪的运行环境。其中 Bean 缓存池为 HashMap 实现
-
bean配置源
- 在XMl中进行显示配置
- 在Java中进行显示配置
- 隐式的bean发现机制和自动装配
- *组件扫描(component scanning):Spring会自动发现应用上下文中所创建的bean。
- *自动装配(autowiring):Spring自动满足bean之间的依赖。
-
BeanFactory- ListableBeanFactory
- HierarchicalBeanFactor
- ConfigurableBeanFactory
- AutowireCapableBeanFactory
-
ApplicationContext面向开发- ApplicationContext常用实现类:
-
ClassPathXmlApplicationContext
从类路径下的xml配置文件中加载 bean配置 - FileSystemXmlApplicationContext
从系统盘符中的xml配置文件中加载 bean配置 - AnnotationConfigApplicationContext
从java的配置类中的java注解加载 bean配置 - AnnotationConfigWebApplicationContext
从java的配置类中的java注解加载 bean配置,专门为web应用准备的 - XmlWebApplicationContext
从web应用下的xml配置文件加载 bean配置
-
ClassPathXmlApplicationContext
- ApplicationContext常用实现类:
-
WebApplicationContext面向Web开发
从相对于 Web 根目录的路径中装载配置文件完成初始化, 可以获得ServletContext 的引用
Spring Bean 作用域
- singleton(单例)
多线程下不安全 - prototype(原型)
- request(http)
一次 Http 请求中,容器会返回该 Bean 的同一实例 - session (http)
在一次 Http Session 中,容器会返回该 Bean 的同一实例 - global session(http)
在一个全局的 Http Session 中,容器会返回该 Bean 的同一个实例
Spring Bean 生命周期
依赖注入
都是通过方法注入
- 构造器方法
- setter方法
- 静态工厂方法
- 实例工厂方法
APO 原理
JDKProxy 和 Cglib代理
MVC 原理
WEB服务器把 客户端Http 请求全转给 控制器 DispatcherServlet
DispatcherServlet 根据请求寻找处理器 Controller
Controller处理后返回ModelAndView给客户端
注释全解
Bean定义
-
@Component:通用的注解,可标注任意类为 Spring 组件。如果一个Bean不知道属于哪个层,可以使用@Component 注解标注。
Bean注入
-
@Autowired默认按类型装配(byType)自动装配 -
@Resource(Bean名称)按名称装配(byName) @Inject
Bean作用范围、生命周期
-
@PostConstruct初始化 -
@PreDestroy销毁 -
@Scope作用范围设置
配置类
@Configuration@Bean
配置读取
@Value("${property}")@ConfigurationProperties
SringMVC
-
@Component衍生注解
-
@Controller: 对应 Spring MVC 控制层,主要用于接受用户请求并调用 Service 层返回数据给前端页面。 -
@Service: 对应服务层,主要涉及一些复杂的逻辑,需要用到 Dao层。 -
@Repository: 对应持久层即 Dao 层,主要用于数据库相关操作。
-
-
@ControllerSringMVC 处理器Controller对象 -
@ResponseBody用于Controller方法返回的对象,写入http的body区 -
@RestController= @Controller + @ResponseBody -
http Request 请求处理方法映射
-
@RequestMappinghttp路径映射到处理类或方法 -
@GetMapping()http GET请求路径映射 -
@PostMapping()http POST请求路径映射 -
@PutMappinghttp PUT请求路径映射 -
@DeleteMappinghttp DELETE请求路径映射
-
-
前后端传值
-
@PathVariable用于获取路径参数,@RequestParam用于获取查询参数。
-