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的知识,很详细,推荐。

 

 

 

 

 

 

 

Logo

权威|前沿|技术|干货|国内首个API全生命周期开发者社区

更多推荐