【牛客社区笔记】1-3 spring入门

课程资源链接

链接:https://p去掉我an.baidu.com/s/1HCLhBfw去掉我ldhdcvjEND19Bng
提取码:pylp
在这里插入图片描述spring
spring 一套框架

  • 核心 基石
  • 构建项目
  • 微服务(大项目拆成小项目 ,便于维护)(该项目用不着)
  • 更多客户端,集成整合数据(…用不着)

Spring Framework

在这里插入图片描述

  • 管理对象(bean) 的思想
    1.1. 面向对象; 面向切面
  • 访问数据库(管理事务,整合mybatis)
  • web开发 (使用mvc)
  • 集成(发邮件,定时任务,发送消息,安全队列)
  • 更多功能看官方文档 (reference.doc)
    在这里插入图片描述在这里插入图片描述

IOC(基础)

在这里插入图片描述
降低耦合度
采用其他办法(依赖注入)建立bean的联系

使用代码进行理解

  • CommunityApplication做的事情,容器怎么创建(ctrl里面的注解),容器里的bean怎么来的(四个注解)
    在这里插入图片描述
  • 注解(被扫描的bean)
    扫描该类所属的包下的bean和子包下的bean

四种注解加在类上,类就可以被扫描到(ctrl后里面都有@component,都由component实现,区别在于语义)

  • @Controller 处理请求的组件
  • @Service 业务组件
  • @Repository 数据库访问的组件
  • @Component 开发的类在任何地方都可以用(访问数据库、处理业务、请求)

代码示例

在这里插入图片描述
ioc核心是spring容器 容器是自动创建的
如何得到容器
实现接口
在这里插入图片描述

  • ApplicationContext 就是spring容器
    • ctrl 以后再ctrl ,其祖宗接口是 BeanFactory
  1. 测试类使用正式环境中的配置类
  2. 获取容器,打印容器
    在这里插入图片描述
  3. 使用容器(管理bean)
    3.1 创建bean
    @Primary 注解
    在这里插入图片描述每个bean都有名字,默认类名 首字母小写
    在这里插入图片描述返回的是个Object(加上类型/或者前面进行强制转型)
    在这里插入图片描述

Spring 容器管理bean的其他方法

  • 创建bean
  • 管理Bean的初始化,销毁
    在这里插入图片描述
    管理作用域的范围
  • 单例的,实例化一次,销毁一次
  • 想要每次getBean都新建一个Bean 使用 @scope
    • 默认 单例 singleton
    • prototype
    • 在这里插入图片描述在这里插入图片描述
  • 管理第三方的jar包(无法在上面加注解怎么办)
    • 自己写个配置类,在类中进行注解声明
    • 以后会有很多配置类,都放在config包下面(已经有了service dao controller)

在这里插入图片描述
主动获取(底层的内容,比较笨拙),并不算依赖注入

依赖注入

怎么方便怎么用
不通过容器主动获取
给当前bean注入
使用注解 @ 加在成员变量之前
意思:spring容器把AlphaDao注入给这个属性
意思:spring容器把AlphaDao注入给这个属性

依赖注入:只需要声明一个属性,写一个注解,bean就有了可以直接拿来用
如果需要指定 加@ Qualifiar(" xxx")
xxx:repository 后面跟的名字

@Autowires

  • 加在构造器前面
  • 加在setter前面
  • 加在成员变量前面(常用)

综合演示项目中的依赖注入

在这里插入图片描述
彼此互相依赖,它们的关系可以用依赖注入来实现
controller :

@Autowired
    private AlphaService alphaService;

    //模拟处理 查询请求
    @RequestMapping("/data")
    @ResponseBody
    public String getData(){
        return alphaService.find();
    }

service:

@Service
//@Scope("prototype")
public class AlphaService {

    @Autowired
    private AlphaDao alphaDao;

    //模拟查询任务
    public String find(){
        return alphaDao.select();
    }

}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值