spring入门
来源:互联网 发布:数据库sqlite怎么用 编辑:程序博客网 时间:2024/06/07 16:32
转自:https://www.cnblogs.com/xing901022/p/3963962.html
1 控制反转IOC\依赖注入DI,因为翻译的不同,因此有两个名字。
控制反转意思就是说,当我们调用一个方法或者类时,不再有我们主动去创建这个类的对象,控制权交给别人(spring)。
依赖注入意思就是说,spring主动创建被调用类的对象,然后把这个对象注入到我们自己的类中,使得我们可以使用它。
2 AOP面向切面编程
我们把一个方法看做是一个切面,在这个切面的前后或者周围,都可以设置其他的处理方法,进行一些特殊的处理。
比如一个“吃蛋糕”的方法,在这个方法前需要“拆包装”,方法后需要“打扫卫生”,都可以通过这种编程方式来实现。
那么下面看下它的编码过程!
1 首先我们需要一个bean,用某种方法(设置注入需要有setter函数,构造注入需要有构造函数,相应的bean.xml配置文件也会不同)设定注入方式。
2 bean.xml,设置bean与类的关系,并关联默认的注入值。
3 获取bean.xml文件,创建实例对象,直接调用方法。
可以看到,我们开发的程序只有第三步的“创建实例对象,直接调用方法”,并没有为他进行初始化等工作,就可以直接调用它的方法,获取它的值。其实spring在程序初始化的时候,就会为我们把bean对应的对象注入进来,帮助我们完成初始化,因此我们只要通过一个引用对象,就可以直接调用了。
最后我们写一个简单的依赖注入的小样例!
1 需要的jar包和文件结构
jar包下载地址:http://pan.baidu.com/s/1sjDbzrR
2 bean.xml配置文件,放在src目录下
1 <?xml version="1.0" encoding="UTF-8"?> 2 <beans xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 3 xmlns="http://www.springframework.org/schema/beans" 4 xsi:schemaLocation="http://www.springframework.org/schema/beans 5 http://www.springframework.org/schema/beans/spring-beans-3.0.xsd"> 6 <bean id="person" class="com.test.bean.Person"> 7 <property name="name" value="xingoo"/> 8 <property name="age" value="12"/> 9 </bean>10 </beans>
3 Person类,这里使用的是set设置注入方式
package com.test.bean;public class Person { private String name; private int age; public String getName() { return name; } public void setName(String name) { this.name = name; } public int getAge() { return age; } public void setAge(int age) { this.age = age; } public void info(){ System.out.println("一起来吃麻辣烫!"); System.out.println("name:"+getName()+" age:"+getAge()); }}
4 test类
package testSpring;import org.springframework.context.ApplicationContext;import org.springframework.context.support.ClassPathXmlApplicationContext;import com.test.bean.Person;public class test { public static void main(String[] args){ ApplicationContext ctx = new ClassPathXmlApplicationContext("bean.xml");//读取bean.xml中的内容 Person p = ctx.getBean("person",Person.class);//创建bean的引用对象 p.info(); }}
5 执行结果
阅读全文
0 0
- Spring 入门
- Spring 入门
- Spring 入门
- Spring入门
- Spring入门
- Spring入门
- Spring入门
- Spring 入门
- spring 入门
- Spring入门
- Spring入门
- Spring入门
- Spring入门
- spring入门
- Spring入门
- spring 入门
- Spring入门
- Spring入门
- sqoop全量抽取postgresql数据
- mybatis bug 记录
- 【python】Threading快速使用和线程锁的理解及.join()用法详说
- JQurey事件绑定方法与区别
- springboot框架servlet容器tomcat、Jetty、undertow压测报告
- spring入门
- getBoundingClientRect()
- CXF webservice服务端、客户端--亲测
- spring-boot中使用log4j
- javascript原型-自己实现each方法遍历多维数组(2)
- python学习手册 第6章
- ngxin server_name实用:配置多个子域名
- C#中的深复制和浅复制(在C#中克隆对象)
- 大数据——hadoop——基本安装、hadoop伪分布实际操作