绑定完请刷新页面
取消
刷新

分享好友

×
取消 复制
springIOC与Aop简介
2020-01-16 16:33:13

Spring框架

  • IOC(控制反转)/DI(依赖注入)
  1. 概念:
    1. IOC:将对象的创建过程转移给spring容器去完成,分离关注点
    2. DI:创建对象实例时,同时给此对象注入所依赖的属性,将组件的构建和使用分开


  1. 所需jar文件:



限制版本配置方式:


  1. spring配置对象:

<bean id=”” class=”” scope=”” lazy-init=”” init-method=”” destroy=””></bean>

注:scope的值有两种:

singleton单例 整个容器中只有一个对象实例 ,每次总是访问同一个对象(默认是单例)

prototype原型 每次获取bean都产生一个新的对象(效率降低)

Lazy-init属性的值有两种:

true:延迟初始化,在用到对象的时候才会创建对象

false:默认值,不延迟创建,启动时候就会创建对象


  1. 加载spring配置文件两种方式:
    1. 利用FileSystemXmlApplicationContext从路径获取文件


ApplicationContext context1 = new FileSystemXmlApplicationContext("D://ssm-workspace//Spring_Ioc//resources//spring.xml");

(2)利用ClassPathXmlApplicationContext从资源目录下获取spring文件

ApplicationContext context = new ClassPathXmlApplicationContext("spring.xml");

注:资源目录:Maven项目resources、web项目src

  1. 依赖注入的方式:
    1. <property name=”” value=””></property> name属性名、value属性值
    2. <property name=”” ref=””></property> ref引入其他对象
    3. 构造方法注入值:<constructor-arg name=”” value=””></constructor-arg>
    4. p命名空间注入值:
  • 头文件注入



xmlns:p="springframework.org/sch"

<bean id=”” class=”” p:属性=”” p:属性-ref=””></bean>

(5)spel注入:<property name=”” value=”#{对象名.属性名}”></property>

(6)list:<property><list><value></value>...<value></value></list></property>

(7)map:<property>

<entry>

<key><value></value></key>

<value></value>

</entry>

</property>

(8)、<property name="info">

<props>

<prop key="学号">50222</prop>

<prop key="sex">5</prop>

</props>

</property>

  1. 注解配置方式
    1. 所需jar文件:



(2)给某个类创建对象的注解:

注:在类名上方加上@Component注解后,意为将UserController让spring管理,相当于:

<bean id=”userController” class=”com.qianf.controller.UserController”></bean>

特别注意,每个类都有默认无参构造方法。如果此类写了有参构造方法,需手动生成无参构造方法;如果没有写有参构造方法,此类会有默认无参构造方法,可以不写


(3)在spring文件中添加:扫描此包下有注解的类并创建此类的对象

<!--扫描包设置-->

<context:component-scan base-package="com.qianf.controller"/>

注:如果想用注解方式让spring来管理对象,必须在spring.xml文件中配置此扫描设置,扫描某个包下所有类,哪个类上写了@Component,spring就会管理哪个类

(4)给此对象的属性赋值


(5)@Value(“”)注解得作用是给普通变量类型赋值

(6)如果类属性中出现其他类对象,需要利用@Autowired(自动装配)注解,并且自动装配 得类也要交给spring管理才能自动装配


自动扫描就需要在扫描此类所在得包才能得到

<context:component-scan base-package="com.qianf.controller,com.qianf.service"/>

(7)@Qualifier(“对象名”),标记具体用哪一个接口实现类

如果上述UserService是一个接口,并且有两个接口实现类:

UserServiceImpl1,UserServiceImpl2,需要用@Qualifier来标记,此处接口用哪个实现类


(8)@Resource(“接口实现类名”) ==@Autowired+@Qualifier(“接口实现类名”)


  • AOP:Aspect Oriented Programming 面向切面编程
  1. Aop目标:让我们可以专心做事:
    1. 将复杂得需求分解出不同方面,将散布在系统中得公共功能集中解决
    2. 采用代理机制组装起来运行,在不改变原程序得基础上对代码进行增强处理,增加新功能


    1. Aop相关术语:
      1. 增强处理(Advice):




      1. 切入点(Pointcut):




      1. 连接点(Join Point):
      2. 切面(Aspect):
      3. 目标对象(Target Object):
      4. AOP代理(AOP proxy):
      5. 织入(Weaving):







  • 注解:


分享好友

分享这个小栈给你的朋友们,一起进步吧。

Spring Boot
创建时间:2020-06-22 17:22:00
SpringBoot是由Pivotal团队在2013年开始研发、2014年4月发布个版本的全新开源的轻量级框架。它基于Spring4.0设计,不仅继承了Spring框架原有的特性,而且还通过简化配置来进一步简化了Spring应用的整个搭建和开发过程。另外SpringBoot通过集成大量的框架使得依赖包的版本冲突,以及引用的不稳定性等问题得到了很好的解决。
展开
订阅须知

• 所有用户可根据关注领域订阅专区或所有专区

• 付费订阅:虚拟交易,一经交易不退款;若特殊情况,可3日内客服咨询

• 专区发布评论属默认订阅所评论专区(除付费小栈外)

栈主、嘉宾

查看更多
  • duanhao
    栈主

小栈成员

查看更多
  • ?
  • zander
  • 凉茶cooltea
戳我,来吐槽~