Spring框架基础知识

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  标注为控制器 ,组件也叫对象

  • 4
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值