Spring Boot实战学习笔记(一)

本文是Spring Boot实战的学习笔记,涵盖了Spring的基础,如主要模块(核心容器、AOP、消息、Web、数据访问/集成)、主要生态、基础配置,以及Spring Boot的高级话题,包括多线程、计划任务、条件注解等。此外,还涉及Spring MVC、Spring Boot核心、Web开发、数据访问等内容。
摘要由CSDN通过智能技术生成

摘要

本文为学习Spring Boot实战的学习笔记,学习了一遍,但是好记性不如烂笔头,所以文章记录下来。图书购买地址为: https://item.jd.com/11894632.html.

Spring Boot实战学习笔记1

Spring Boot实战学习笔记2

Spring Boot实战学习笔记3

Spring Boot实战学习笔记4

Spring Boot实战学习笔记5

1.Spring 基础

1.1 Spring 主要模块

1.1.1 核心容器(Core Container)

Spring-Core:核心工具类,Spring其它模块大量使用Spring-Core
Spring-Beans:Spring定义的Bean的支持
Spring-Context:运行时Spring容器
Spring-Context-Support:Spring容器对第三方包的集成支持
Spring-Expression:使用表达式语言在运行是查询和操作对象

1.1.2 AOP

Spring-AOP:基于代理的AOP支持
Spring-Aspects:基于AspectJ的支持.

1.1.3 消息(Messaging)

Spring-Messageing:对消息架构和协议的支持

1.1.4 Web

Spring-Web:提供基础的Web集成的功能,在Web项目中提供Spring的容器
Spring-Webmvc:提供基于Servlet的Spring MVC
Spring-WebSocket:提供WebSocket功能
Spring-Webmvc-Portlet:提供portlet环境支持.

1.1.5 数据访问/集成(Data Access/Integration)

Spring-JDBC: 提供以 JDBC访间数据库的支持
Spnng-TX: 提供编程式和声明式的事务支持
Spnng-0RM: 提供对对象/关系映射技术的支持
Spring-0XM:提供对对象/xml映射技术的支持
Spring-JMS: 提供对 JMS的支持。

1.2 Spring 主要生态

Spring.io 生态体系请点击查看

1.3 Spring基础配置

四大原则:
1) 使用POJO进行轻量级和最小侵入式开发
2) 通过依赖注入和基于接口编程实现松耦合
3) 通过AOP和默认习惯进行声明式编程
4) 使用AOP和模板(Template)减少模块化代码
Spring所有功能的设计和实现都是基于以上四大原则的.

1.3.1 IOC

控制反转: (IOC-Inversion of Control)
依赖注入: (DI-dependency injection)
在Spring 环境下是等同的,控制翻转是通过依赖注入实现的. 依赖注入指的是容器负责创建对象和维护对象间的依赖关系,而不是通过对象本身负责自己的创建和解决自己的依赖.
Spring Ioc容器(ApplicationContext)负责创建 Bean,并通过容器精功能类 Bean注入到你需要的 Bean中。 spring提供使用 xml、注解、 Java配置、 groovy配置实现 Bean的创建和注入。
元数据: 包括 xml配置、注解配置和Java配置. 元数据本身不具备住何可执行的能力, 只能通过外界代码来对这些元数据行解析后通行一些有意义操作。Spring容器解析这些配置元数据进行 Bean初始化、配置和管理依赖。
声明 Bean的注解:
o @Component组件,没有明确的角色。
o @service在业务逻輯层( service层)使用。
o @Repository 在数据访问层( dao层)使用 。
o @controller在展现层( MVC→Sprmg MVC)使用 。
o @Component Spring容器管理的Bean。

注入 Bean的注解, 一般情况下通用
o @Autowired: Spring提供的注解。
o @Inject: JSR-330提供的注解。
o @Resource: JSR-250提供的注解。
o @EnableAspectJAutoProxy: 注解开启Spring对AspectJ的支持.

常用注解举例
o @Configuration:表明当前类是一个配置类,这个意味着这个类里可能有0个或多个@Bean注解.

1.3.2 AOP

AOP:面向切面编程,相对于OOP面向对象编程.
AOP的目的是解耦,AOP让一组类共享相同的行为。
在OOP中只能通过继承类和实现接口,来使代码的耦合度增强,且类继承只能为单继承,阻碍更多行为添加到一组类上,AOP弥补了OOP的不足.
Spring 支持AspectJ的注解切面编程.
- o @AspectJ的注解式切面编程
- o @After,@Before,@Around定义建言(Advice),可直接将拦截规则(切点,PointCut)作为参数。
- o @PointCut 拦截规则为切点(PointCut),定义拦截规则。
- JoinPoint: 连接点,符合条件的每一个拦截处.

==AOP==

<!-- spring aop支持 -->
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-aop</artifactId>
            <version>${spring-framework.version}</version>
        </dependency>

        <!-- aspectj支持 -->
        //注意,由于pom标准写法占用个篇幅,改用gradle写法.要要代码时修改即可.或查看本书完整代码.
        org.aspectj:aspectjrt:1.8.6
        org.aspectj:aspectjweaver:1.8.5     

源码下载地址

http://www.broadview.com.cn/book/472
http://www.broadview.com.cn/file/resource/061078061207186156162159222041137008231100137136#

2.Spring 常用配置

2.1 Bean的Scope

Scope描述的是Srping 容器如何新建Bean的实例的.Spring的Scope有:
- 1)Singleton : 一个Spring 容器中只有一个Bean的实例.此为Spring默认配置,全部容器共享一个实例.
- 2)Prototype : 每次调用新建一个Bean的实例.
- 3)Request : 每一个Http的Request新建一个Bean实例.
- 4)Session : 每一个http的Session新建一个Bean实例.
- 5)GlobalSession:每一个global http session新建一个bean(只在portal中有用)
- 6)StepScope : 只在Spring Batch中使用.

写法如下:


@Service
@Scope("prototype")
public class DemoPrototypeService{
   

}

2.2 EL和资源调用

配置文件:test.properties
book.author=wangyunfei
book.name=spring boot


    // 1)普通字符串
    @Value("其它类的属性")
    private String another; 

    //2)操作系统属性
    @Value("#{systemProperties['os.name']}")    
    private String osName;

    //3)注入表达式结果
    @Value("#{ T(java.lang.Math).random() * 100.0 }") 
    private double randomNumber;

    //4)注入其它Bean结果
    @Value("#{demoService.another}") 
    
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值