博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Spring IOC
阅读量:5279 次
发布时间:2019-06-14

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

Spring框架

它目前是一个JAVAEE平台下最重要的一个框架,它已经是一个技术生态,基于SPRING框架可以大大提高项目的开发效率,主要应用的技术有:IOC, AOP,DT, MVC, Security, OAuth, ...

Spring IOC

依赖注入,也叫控制反转

按需注入,当某个类中,需要另一个或多个对象时,而这一个或多个对象又被Spring 框架的容器所管理,那框架就可以帮助我们自动注入到目标对象中。

public class User {
   private Integer id; private String name; private String password; private String realName; } // 传统的做法 public class UserDemo { public static void main(String[] args) { //创建一个User User u = new User(); // 设置属性值 u.setId(1); u.setName("jack"); u.setPassword("123456"); u.setRealName("张三丰"); // System.out.println(u); } }

//如果是采用spring框架,则:

//定义一个xml文件,来描述这个Bean ... 
...

//在你的代码中,读取配置文件

public class UserDemo {
   public static void main(String[] args) { //利用Spring框架的核心类,去加载 xml 文件 ApplicationContext ac = new ClassPathXmlApplicationContext("application.xml"); //获取一个Bean User u = ac.getBean("u",User.class); } }

Spring框架的功能

它含盖了从视图层、控制层、业务层、持久层全方位的技术技持,视图和控制主要由 Spring MVC框架来辅助,而业务层主要由IOC, AOP,DT来辅助,持久层则有专门的接口和类来负责,如:spring对JDBC的支持,对mybatis的支持,还有对Hibernate以及JPA的支持。除此以外,它还提供了很多辅助性的功能,如:面向切面编程,拦截器、定时器、任务调度、安全、认证、授权、消息服务、邮件服务等等

以上这些都需要用到Spring框架提供的核心容器[Application Context]以及IOC。当然,Spring框架与测试框架的集成也是做得很好的,如:与junit和testng的集成

Spring IOC的核心API

IOC, Inverse of Control, 控制反转, 也叫 Dependency Injection [DI]

核心API:

  1. ApplicationContext 接口

    \- ClassPathXmlApplicationContext

    \- AnnotationConfigApplicationContext

  2. 所涉及到的一些注解:

    • @Configuration 告诉Spring 框架, 这是一个注解配置类

    • @ComponentScan 告诉Spring框架,去哪些包下面扫描相关的组件[Component]

    • @Component 告诉Spring框架,此类是一个Bean

      • @Controller

      • @Service

      • @Repository

    • @Value 直接给属性赋值, 使用不多

    • @Autowired 自动注入,是根据类型去匹配

    • @Qualifier, 当@Autowired有二义性时,配合此注解使用,它可以指定bean的名字。

    • @Resource ,相当于 @Autowired+@Qualifier

    • @Import 导入另一个配置类

    • @PropertySource 导入一个属性文件 [.properties]

    • @ImportResource 导入另一个配置文件 [.xml]

    • @Bean 用来修饰方法的,是定义在 配置类中的方法

    • ....

注解配置步骤

  1. 编写一个注解配置类,这个类名一般叫:AppConfig

    @Configuration @ComponentScan("要扫描的包名") @ImportResource("你要导入的xml配置文件的路径") public class AppConfig { //nothing! }
  2. 把需要被扫描成组件的类,打上 @Component 注解

  3. 利用Spring的核心API,去加载并解析注解配置类

    ApplicationContext ac =                 new AnnotationConfigApplicationContext(AppConfig.class); //利用ac 去获取Bean XXX x = ac.getBean("beanName", XXX.class); //...

Spring AOP

Spring DT

转载于:https://www.cnblogs.com/fanzhuangzhuang/p/11236684.html

你可能感兴趣的文章
普通求素数和线性筛素数
查看>>
PHP截取中英文混合字符
查看>>
电子眼抓拍大解密
查看>>
51nod1076 (边双连通)
查看>>
Linux pipe函数
查看>>
Zerver是一个C#开发的Nginx+PHP+Mysql+memcached+redis绿色集成开发环境
查看>>
程序的静态链接,动态链接和装载 (补充)
查看>>
关于本博客说明
查看>>
[Kaggle] Sentiment Analysis on Movie Reviews
查看>>
价值观
查看>>
mongodb命令----批量更改文档字段名
查看>>
国外常见互联网盈利创新模式
查看>>
android:scaleType属性
查看>>
shell脚本
查看>>
Upload Image to .NET Core 2.1 API
查看>>
【雷电】源代码分析(二)-- 进入游戏攻击
查看>>
Linux中防火墙centos
查看>>
centos下同时启动多个tomcat
查看>>
Leetcode Balanced Binary Tree
查看>>
[JS]递归对象或数组
查看>>