Mybatis框架:
Spring框架:
要点:
1、控制反转IoC和依赖注入DI来管理 javabean
什么是Bean?
一个可重用的组件,满足要求:所有属性为private、私有属性提供public的getter和setter方法、有一个无参构造;
什么是控制反转IoC?
原本是我们new一个对象,现在交给Spring的IoC容器创建和管理;
什么是依赖注入DI?
在编程思想为控制反转IoC的前提下,对象所依赖的关系,是通过外部注入的方式实现:setter注入、构造注入;
定义Bean的配置文件:xxx.xml
<!-- setter注入 --> <bean id = "" class = "" lazy-init = "true" init-method = "初始化方法" destroy-method = "销毁方法" scope = "作用域" autowire = "自动装配" factory-method = "使用一个工厂方法获取自己的类对象">
<!-- 属性 --> <property name = "name" value = "hello" /> <!-- 内部bean --> <property name = "name"> <bean id = "name" class = "com.Name"/> </property>
<!-- 注入集合 list -->
<property name = "name">
<list>
<value>Jack</value>
<value>Tom</value>
<ref bean = "age" /> //注入Bean引用
</list>
</property>
<!-- 注入集合 map -->
<property name = "name">
<map>
<entry key = "1" value = "Jack"/>
<entry key = "2" value = "Tom"/>
<entry key = "3" value-ref = "age"/> //注入Bean引用
</map>
</property>
</bean>
<!-- 构造注入 -->
<bean id = "" class = "">
<constructor-arg ref = "age" />
<constructor-arg value = "hello"/>
</bean>
<bean id = "age" class = "come.Age"> </bean>
scope作用域:singleton(默认)、prototype(每次都new)、request、session、global-session
自动装配:no(默认)、byName(由属性名称自动装配,通过setter注入)、byType(由属性类型自动装配,通过setter注入)、constructor(由属性类型自动装配,使用参数最多的构造函数)
代码获取bean:
ApplicationContext context = new ClassPathXmlApplicationContext("xxx.xml"); //加载配置文件 MyClass obj = (MyClass) context.getBean("myclass"); //获取bean
2、面向切面编程AOP
3、Spring MVC架构 解决Web开发