学习Spring基础知识
Spring的学习笔记:1、spring 是一个开源的Java/ Java EE全功能栈应用程序框架。轻量级的控制反转(IoC)和面向切面(AOP)的容器框架。 控制反转(IoC):就是将创建对象的功能交给Spring,Spring会按照applicationContext.xml中的配置生成一个对象。 面向切面(AOP):就是在正常的程序执行流程中,加入一些非业务代码,一般有...
Spring的学习笔记:
1、spring 是一个开源的Java/ Java EE全功能栈应用程序框架。轻量级的控制反转(IoC)和面向切面(AOP)的容器框架。
控制反转(IoC):就是将创建对象的功能交给Spring,Spring会按照applicationContext.xml中的配置生成一个对象。
面向切面(AOP):就是在正常的程序执行流程中,加入一些非业务代码,一般有性能统计、日志输出等, 代码写在一个切面类中,在通过applicationContext.xml配置,<aop:pointcut>和<aop:aspect>来实现切面功能,在核心业务代码执行的过程中,执行一些辅助代码。
Spring:说白了就是操作javaBean,操作基础类,和在代码中执行非业务代码。
Spring 的知识梳理:
Spring的IOC/DI(控制反转):
主要涉及:注入属性、注入对象、通过注解完成注入。
注入属性:通过applicationContext.xml通过配置<bean>来 new 一个Category对象,并向其属性赋值。
通过TestSpring.java中的ClassPathApplicationContext读取applicationContext.xml配置文件,拿到对象
注入对象:通过applicationContext.xml通过<bean><ref="c">配置 new 一个拥有Category字段的Product对象,
通过TestSpring.java中的ClassPathApplicationContext读取application.xml配置文件,拿到对象
注解方式:可以简化application.xml中的内容:
使用注解方式就是通过一些注解符的形式来实现本该在applicationContext中定义的联系。我认为这样更灵活,但也容易出错
<context:annotaion-config>可以简化<ref>
@Autowired :标识该属性来源于application.xml
@Resource(name="c"): 标识此属性来源于application.xml的 c
<context:component-scan base-package="xxx.pojo">等价于<bean>
在Category、Product类中注解@Component("p")标识该类是javabean类
Spring的AOP(面向对象编程):
主要用于在 核心业务中 插入 非业务功能代码(日志功能、性能统计)
ProductService.java ==》核心功能代码
TestSpring.java ==》main方法
LoggerAspect.java ===》切面方法,定义切面执行什么功能
application.xml ===》配置文件,
定义切点,pointcut expression=(什么方法触发)
定义切面,aspect 哪个切点触发,触发时执行前面的哪个方法
Spring框架只引入了applicationContext.xml文件,来完成 IOC 和 AOP
通过<bean>将对象的创建功能交给spring管理,
通过<ref>为一个对象注入对象,
通过<context:component-scan base-package="xxxx.pojo">遍历所有的@component,使其变成bean类
通过LoggerAspect.java来构造切面,使用<aop:pointcut>、<aop:aspect>来定义切点和切面
注解关键词:
@Component :注解该类是个javabean类 有Spring管理
@Aspect : 注解该类是个切面
@Around(value=execution(* com.how2java.service.ProductService.*(..))")==返回值 方法名 参数
标识该类的所有方法都可以 触发切面,
- @Around表示包围一个函数,也就是可以在函数执行前做一些事情,也可以在函数执行后做一些事情
@RunWith(SpringJUnit4ClassRunner.class) 表示这是个Spring的测试类
@ContextConfiguration("classpath:application.xml") 定位Spring的配置文件
@Autowired 给这个类装配对象,例如给product类装配 category对象
@Test 测试,Junit的标识
@Autowired 自动装配
@Resource(name="xx") 标注自动装配
@Component 标注为控制器 ,组件也叫对象
此文第二次更新于 2018年2月26日 19:17:30
写到好乱,感觉学的不精,过段时间再来看。
另 附上学习地址:http://how2j.cn/k/spring/spring-ioc-di/87.html
站长整理了很多java的知识,很详细,推荐。
更多推荐
所有评论(0)