javaEE开发的颠覆者 spring Boot 实战 1.3 Spring基础配置

spring框架本身有四大原则:

1)使用pojo进行轻量级和最小侵入式开发。

2)通过依赖注入和基于借口编程实现松耦合。

3)通过AOP和默认习惯进行声明式编程

4)使用AOP和模板(template)减少模块化代码。

一、依赖注入

1.点睛

    控制翻转IOC和依赖注入DI,在spring环境中是相同的概念。控制翻转是通过依赖注入实现的 。所谓的依赖注入指的是容器负责创建对象和维护对象捡的依赖关系,而不是通过对象负责自己的创建和解决自己的依赖。

    依赖注入的主要目的是 解耦 ,体现一种组合的概念。相对于继承,组合的耦合度将大大降低。

    spring IOC容器(ApplicationContext)负责创建Bean,并通过容器将功能类Bean注入到需要的Bean中。spring 提供使用xml 、注解、Java配置、groovy 配置实现Bean的创建和注入。

    无论是xml 、注解、还是Java配置,都称作配置元数据。元数据:描述数据的数据。元数据本身不具备任何可执行的能力,只能通过外界代码来对其解析后进行操作。spring容器解析这些配置元数据惊醒Bean初始化、配置和管理依赖。

    声明Bean的注解:

    @Component    组件 ,没有明确的角色

    @Service    在业务逻辑层(Service层)使用

    @Repository    在数据访问层(DAO)使用

    @Controller    在展现层(MVC——》Spring MVC)使用

    注入Bean的注解,一般情况下通用。

    @Autowired    Spring提供的注解

    @Inject    JSR-330提供的注解

    @Resource    JSR-250提供的注解

    @Autowired 、@Inject 、 @Resource 可注解在set方法上或者属性上。注解在属性上优点是代码少,层次清晰。

二、Java配置

   Java配置是 spring 4.x 推荐的配置方式,可以完全代替xml配置;Java配置也是springBoot 推荐的配置方式。   

   Java配置是通过@Configuration 和 @Bean 来实现的。

    @Configuration 声明当前类是配置类,相当于一个spring配置的xml文件。

    @Bean 注解在方法上,声明当前方法的返回值为一个Bean。

    推荐的配置原则:全局配置使用Java配置(如数据库相关配置、MVC相关配置),业务Bean的配置使用注解配置(@Service 、 @Component 、 @Repository 、 @Controlle).

三、AOP

    AOP:面向切面编程。相对于OOP面向对象编程。

    Spring 的AOP的存在目的是为了解耦。AOP可以让一组类共享相同的行为。在OOP中只能通过集成类和实现接口,来使代码耦合度增强,且类继承只能为单继承,阻碍更多行为添加到一组类上,AOP弥补了OOP的不足

    Spring 支持AspectJ的注解式切面编程。

   (1)使用@Aspect 声明是一个切面。

   (2)使用@After、@Before 、@Around 定义建言(advice),可以直接拦截规则(切点)作为参数。    

   (3)其中@After、@Befour 、@Around 参数的拦截规则为切点(PointCut),为了使切点复用,可使用@PointCut专门定制拦截规则,然后在@After 、 @Before 、@Around 的参数中调用。

   (4)其中符合条件的每一个被拦截处为连接点(JoinPoint)

注解:注解本身是么有功能的,就和xml一样。注解和xml都是一种元数据,元数据就是解释数据的数据,这就是所谓的配置。注解的功能来自用这个注解的地方。

    

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值