Spring的学习笔记:
1、spring 是一个开源的Java/ Java EE全功能栈应用程序框架。轻量级的控制反转(IoC)和面向切面(AOP)的容器框架。
控制反转(IoC):就是将创建对象的功能交给Spring,Spring会按照applicationContext.xml中的配置生成一个对象。
面向切面(AOP):就是在正常的程序执行流程中,加入一些非业务代码,一般有性能统计、日志输出等, 代码写在一个切面类中,在通过applicationContext.xml配置,
Spring:说白了就是操作javaBean,操作基础类,和在代码中执行非业务代码。
Spring 的知识梳理:
Spring的IOC/DI(控制反转):
主要涉及:注入属性、注入对象、通过注解完成注入。
注入属性:通过applicationContext.xml通过配置
通过TestSpring.java中的ClassPathApplicationContext读取applicationContext.xml配置文件,拿到对象
注入对象:通过applicationContext.xml通过
通过TestSpring.java中的ClassPathApplicationContext读取application.xml配置文件,拿到对象
注解方式:可以简化application.xml中的内容:
使用注解方式就是通过一些注解符的形式来实现本该在applicationContext中定义的联系。我认为这样更灵活,但也容易出错
@Autowired :标识该属性来源于application.xml
@Resource(name="c"): 标识此属性来源于application.xml的 c
在Category、Product类中注解@Component("p")标识该类是javabean类
Spring的AOP(面向对象编程):
主要用于在 核心业务中 插入 非业务功能代码(日志功能、性能统计)
ProductService.java ==》核心功能代码
TestSpring.java ==》main方法
LoggerAspect.java ===》切面方法,定义切面执行什么功能
application.xml ===》配置文件,
定义切点,pointcut expression=(什么方法触发)
定义切面,aspect 哪个切点触发,触发时执行前面的哪个方法
Spring框架只引入了applicationContext.xml文件,来完成 IOC 和 AOP
通过
通过
通过LoggerAspect.java来构造切面,使用
注解关键词:
@Component :注解该类是个javabean类 有Spring管理
@Aspect : 注解该类是个切面
@Around(value=execution(* com.how2java.service.ProductService.*(..))")==返回值 方法名 参数
标识该类的所有方法都可以 触发切面,
@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的知识,很详细,推荐。