1.核心
1.spring的核心是依赖注入和控制反转,这两种行为描述的是对象之间同一种轨迹,只不过对象不同角度不同,对于各自行为的定义也就不同
A对象里面引用了B对象:
1.对于A而言:在spring中它通过获取B对象的地址值来获得B对象,它称自己这种行为叫控制反转,通过地址值控制B对象,角色反转有需求依赖者反转变成掌控者
2.对于B而言,根于A对象的需求依赖它,它进行A对象的入住
3.spring 通过依赖注入的方式把对象间角色关系进行控制反转了:即需要就注入
二.作用
1.解耦:耦合度只事物之间的紧密程度,从而造成事物之间的影响程度,牵一发而动全身,或者活活给拖累死
2.目的就是提高灵活性和可维护性。
3.IoC最大的好处是什么?因为把对象生成放在了XML里定义,所以当我们需要换一个实现子类将会变成很简单(一般这样的对象都是实现于某种接口的),只要修改XML就可以了,这样我们甚至可以实现对象的热插拔(有点像USB接口和SCSI硬盘了
三:配置
A.注解的启用和创建,属性注入
1.开启注解功能
<mvc:annotation-driven>
2.注解扫描所选择的包
<!-- 使用annotation 自动注册bean, 并保证@Required、@Autowired的属性被注入 -->
<context:component-scan base-package="com.xinwoclub.app.api">
<context:exclude-filter type="annotation" expression="org.springframework.stereotype.Controller"/>
<context:exclude-filter type="annotation"
expression="org.springframework.web.bind.annotation.ControllerAdvice"/>
</context:component-scan>
<!-- 自动扫描且只扫描@Controller -->
<context:component-scan base-package="com.xinwoclub.app.api.controller" use-default-filters="false">
<context:include-filter type="annotation" expression="org.springframework.stereotype.Controller"/>
<context:include-filter type="annotation"
expression="org.springframework.web.bind.annotation.ControllerAdvice"/>
</context:component-scan>
B.定义JSP前后缀
1.
<!-- 定义JSP文件的位置 -->
<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<property name="prefix" value="/WEB-INF/views/"/>
<property name="suffix" value=".jsp"/>
</bean>