博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
初识Spring(IOC,DI,创建流程)
阅读量:4136 次
发布时间:2019-05-25

本文共 3112 字,大约阅读时间需要 10 分钟。

目录

Spring Framework 布局图

在这里插入图片描述

IOC 控制反转

(Inversion of Control,控制反转) ,是面向对象编程中的一种设计原则,可以用来减低计算机代码之间的耦合度。

使用 IOC 之前,我们需要自己 new 对象,相当于对象的创建权和销毁权在我们手中,而使用 IOC 之后,相当于将控制权交给第三方(Spring容器)进行管理。

DI 依赖注入

DI (Dependency Injection,依赖注入) 是实现IoC的方法之一。所谓依赖注入,就是由IOC容器在运行期间,动态地将某种依赖关系注入到对象之中。

总结: IOC 控制反转是一种程序设计思想,而 DI (依赖注入)是实现控制反转的技术实现

Spring Bean 类注册

@Controller —— 控制器(web逻辑处理层)

@Service —— 业务逻辑层 Article(CRUD)
@Component —— 通用组件
@Repository —— 数据库持久层,操作数据库数据(CRUD)

在spring项目中创建对象

  1. pom.xml中添加引用
1.8
${
java.version}
${
java.version}
UTF-8
5.2.10.RELEASE
org.springframework
spring-beans
${
spring-framework.version}
org.springframework
spring-context
${
spring-framework.version}
org.projectlombok
lombok
1.18.16
  1. 创建一个类,然后得到它的父类对象,需要配置xml文件来扫描spring根路径
package org.example;import org.example.controller.LoginController;import org.springframework.context.ApplicationContext;import org.springframework.context.support.ClassPathXmlApplicationContext;public class App {
public static void main(String[] args) {
ApplicationContext context = new ClassPathXmlApplicationContext("beans.xml"); }}
  1. 在资源中创建次xml文件,有固定的格式,修改context的路径为扫描路径
  1. 在路径下创建controller,添加@Controller注解来注册此类到spring项目中
package org.example.controller;import org.springframework.stereotype.Controller;@Controllerpublic class LoginController {
}
  1. 使用getbean方法取到创建的新类
  • 可以使用字符串的格式
public static void main(String[] args) {
ApplicationContext context = new ClassPathXmlApplicationContext("beans.xml"); LoginController loginController = (LoginController) context.getBean("loginController"); System.out.println(loginController); //关闭容器 ((ClassPathXmlApplicationContext)context).close(); }

要注意的是getbean中的参数是需要有规范的,

第一个字母为大写,后面为小写,则需要第一个字母小写,如Login,需要变为login
前三个字母为大写,则不需要改变,如UMLlala,不用改变

ps:如果不确定需要改的格式,则可以用这种方式来看需要改的格式

System.out.println(Introspector.decapitalize("LoginController"));

  • 参数也可以用类的方式
public static void main(String[] args) {
ApplicationContext context = new ClassPathXmlApplicationContext("beans.xml"); LoginController loginController = context.getBean(LoginController.class); System.out.println(loginController); //关闭容器 ((ClassPathXmlApplicationContext)context).close(); }

同样的,都是可以得到该类的

在这里插入图片描述

总结 Spring 创建流程

  1. 创建一个 maven
  2. 创建一个启动类,创建 ApplicationContent 对象,设置一个 XML
  3. XML 规定了依赖主入对象的根路径
  4. 依赖注入
    a)Controller —— 前端业务交互层【参数效验】
    b)Service —— 业务处理的中间层【业务处理】
    c)Reoisitory —— 数据持久层
    d)Component —— 通用对象工具类
  5. 得到 bean 对象
    a)注解:@Autowrited、@Resource
    b)ApplicationContent. getBean()
    【getBean(“类名”) —— 首字母大写,对应类名应该是首字母小写;如果首字母和第二个字母都是大写,那么对应类名不改变。“Abc” -> “abc”,“ABC” -> “ABC”】
    【getBean(类型) 得到bean。getBean(Login.class)】

转载地址:http://oixvi.baihongyu.com/

你可能感兴趣的文章
different aspects for software
查看>>
To do list
查看>>
Study of Source code
查看>>
如何使用BBC英语学习频道
查看>>
spring事务探索
查看>>
浅谈Spring声明式事务管理ThreadLocal和JDKProxy
查看>>
初识xsd
查看>>
java 设计模式-职责型模式
查看>>
构造型模式
查看>>
svn out of date 无法更新到最新版本
查看>>
java杂记
查看>>
RunTime.getRuntime().exec()
查看>>
Oracle 分组排序函数
查看>>
删除weblogic 域
查看>>
VMware Workstation 14中文破解版下载(附密钥)(笔记)
查看>>
日志框架学习
查看>>
日志框架学习2
查看>>
SVN-无法查看log,提示Want to go offline,时间显示1970问题,error主要是 url中 有一层的中文进行了2次encode
查看>>
NGINX
查看>>
Qt文件夹选择对话框
查看>>