Spring入门
小小小青菜
2016年11月1日
展开
-
名词解说:IOC和DI,AOP
一、定义IOC:反转资源获取的方向。(传统的资源查找方式要求组件向容器发起请求查找资源作为回应,容器适时的返回资源,应用了IOC后则是,容器主动地将资源推送给它所管理的组件,组件所要做的仅是选择一种合适的方式来接受资源。“查找的被动形式”)DI:IOC的另一种表述方式。组件以一些预先定义好的方式接受来自如容器的资源注入。二、例子举个简单的例子:有两个类:class A{}class B{ ...原创 2018-02-27 23:30:07 · 332 阅读 · 0 评论 -
Spring 容器
在Spring IOC容器读取Bean配置创建Bean实例之前必须对它进行实例化,只有在容器实例化后才可以从IOC容器里获取Bean实例并使用。Spring提供了两种类型的IOC容器实现:1、BeanFactory:IOC容器的基本实现。2、ApplicationContext:提供了更多的高级特性,是BeanFactory的子接口。Spring 注入方式:1.属性注入(setter方法注入) ...原创 2018-02-28 20:49:08 · 193 阅读 · 0 评论 -
Spring的自动装配
可以使用autowire属性指定自动装配的方式,byName 根据bean 的名字和当前bean 的setter 风格的属性名进行自动装配,若有匹配的就进行自动匹配,若没有就不byType 根据bean 的类型和当前的bean 的属性的类型进行自动装配,若IOC容器中有一个以上的类型匹配的bean,就会抛异常。缺陷:1、在bean配置文件里设置autowire属性进行自动装配,就会装配Bean的所...原创 2018-02-28 23:05:58 · 175 阅读 · 0 评论 -
Bean之间的关系和作用域
bean之间的关系:继承,依赖。1.继承:Spring允许继承bean的配置,被继承的bean称为父bean,继承这个父bean的bean称为子bean:子bean从父bean中继承配置,包括bean的属性配置子bean也可以覆盖从父bean继承过来的配置父bean可以作为配置模板,也可以作为bean实例。【如果只想把父bean作为模板,可以设置<bean>的abstruct属性为tr...原创 2018-03-01 09:58:34 · 267 阅读 · 0 评论 -
xml配置文件的头
一、一般基本的头:<?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:p="http:/原创 2018-03-01 19:51:24 · 981 阅读 · 0 评论 -
Spring 4.xx新特性:泛型依赖注入
注意:generic.xml的头要配对了,用的是需要component-context的头!!!不然的话扫描不到原创 2018-03-01 21:42:52 · 171 阅读 · 0 评论 -
注解的方式来配置bean
组件扫描:Spring能够从classpath下自动扫描,侦测和实例化具有特定注解的组件。特定的组件包括:@Component:基本注解,标志了一个受Spring管理的组件@Respository:标识持久层组件组件@Service:标识服务(业务层)层组件@Controller:标识表现层组件组件类使用特定的注解后,还需要在Spring的配置文件中声明<context:component-...原创 2018-03-02 01:14:33 · 214 阅读 · 0 评论 -
学习Spring所要用到的pom.xml文件
<?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://m原创 2018-03-02 09:42:45 · 659 阅读 · 0 评论 -
Spring AOP
1、为什么需要有AOP?例子:会遇到的问题:1.代码混乱:越来越多的非业务需求(日志和验证等)加入后,原有的业务方法急剧膨胀,每个方法在处理核心逻辑的同时还必须兼顾其他多个关注点。2.代码分散:以日志需求为例,只是为了满足这个单一的需求就不得不在多个模块(方法)里多次重复相同的日志代码。如果日志需求发生了变化就必须修改所有的模块。方案一:使用代理模式解决上述问题:代理模式的原理:使用一个代理将对象...原创 2018-03-02 18:48:52 · 192 阅读 · 0 评论