Spring专题
90.为什么要使用 spring?
91.解释一下什么是 aop?
92.解释一下什么是 ioc?
93.spring 有哪些主要模块?

1、Spring Core:主要组件是BeanFactory,创建JavaBean的工厂,使用控制反转(IOC) 模式
将应用程序的配置和依赖性规范与实际的应用程序代码分开。
2、Spring AOP:集成了面向切面的编程功能(AOP把一个业务流程分成几部分,例如权限检查、业务处理、日志记录,
每个部分单独处理,然后把它们组装成完整的业务流程。每个部分被称为切面),
可以将声明性事物管理集成到应用程序中。
3、Spring context:一个核心配置文件,为Spring框架提供上下文信息。
4、Spring dao:Spring操作数据库的模块。
5、Spring ORM:Spring集成了各种orm(object relationship mapping 对象关系映射)框架的模块,集成mybatis
6、Spring web:集成各种优秀的web层框架的模块(Struts、Springmvc)
7、Spring web mvc:Spring web层框架
94.spring 常用的注入方式有哪些?
通过配置文件中在bean上进行setter注入、构造注入、接口注入,或者在属性上直接用@Autowired,@Resource,@Qualifier注解注入
setter注入举例:
package org.jia;
public class Order {
private String orderNum;
@SuppressWarnings("unused")
private OrderItem orderitem;
public Order(OrderItem item){
orderitem = item;
}
public OrderItem getOrderitem() {
return orderitem;
}
public void setOrderitem(OrderItem orderitem) {
this.orderitem = orderitem;
}
public String getOrderNum() {
return orderNum;
}
public void setOrderNum(String orderNum) {
this.orderNum = orderNum;
}
}
package org.jia;
public class OrderItem {
private String orderdec;
public String getOrderdec() {
return orderdec;
}
public void setOrderdec(String orderdec) {
this.orderdec = orderdec;
}
}
setter方式的第一种:property引入
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd">
<beans>
<bean id="orderItem" class="org.jia.OrderItem">
<property name="orderdec" value="item00001"></property>
</bean>
<bean id="order" class="org.jia.Order" >
<!-----注入变量 名字必须与类中的名字一样------->
<property name="orderNum" value="order000007"></property>
<!--注入对象 名字为orderitem,所属的类的应用id为orderItem-->
<property name="orderitem" ref="orderItem"></property>
--></bean>
</beans>
setter方式的第二种:byName
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd">
<beans>
<!--此时的id就必须与Order.java中所定义的OrderItem的对象名称一样了,不然就会找不到-->
<bean id="orderitem" class="org.jia.OrderItem">
<property name="orderdec" value="item00001"></property>
</bean>
<bean id="order" class="org.jia.Order" autowire="byName">
<property name="orderNum" value="order000007"></property>
</bean>
</beans>
setter方式的第二种:byType
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd">
<beans>
<!--按照byType注入则就与id没有关系,可以随便定义id !!!但是不能出现多个此类的id-->
<bean id="orderitdfadafaem" class="org.jia.OrderItem">
<property name="orderdec" value="item00001"></property>
</bean>
<bean id="order" class="org.jia.Order" autowire="byType">
<property name="orderNum" value="order000007"></property>
</bean>
</beans>
构造注入举例:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd">
<beans>
<bean id="orderItem" class="org.jia.OrderItem">
<property name="orderdec" value="item00001"></property>
</bean>
<bean id="order" class="org.jia.Order" autowire="constructor">
<property name="orderNum" value="order000007"></property>
</bean>
</beans>
注解注入举例:
@Autowired自动注入,从spring上下文找到合适的bean注入,按类型匹配注入
@Autowired private UserDao userDao;
@Resource默认按照名称匹配注入bean,name属性如果没有,按照属性名或方法名去查找bean注入
@Resource(name = "userServiceImpl") private UserService userService;
@Qualifier跟@Resource类似,指定注入的bean名称
@Autowired
@Qualifier("userServiceImp")
private UserSerevice userService;
@Service,@Controller,@Repository,@Component分别标记在service层,controller层,dao层,不确定的层上,是实现类上,不是接口,spring扫描到带有这些注解的类,会自动生成bean,类似于在bean中配置bean
95.spring 中的 bean 是线程安全的吗?
96.spring 支持几种 bean 的作用域?
97.spring 自动装配 bean 有哪些方式?
setter注入方式——no(ref)装配autowire="no",byName装配autowire="byName",byType装配autowire="byType"
构造注入方式——构造装配 autowire="constructor"
98.spring 事务实现方式有哪些?
@Transactional
99.说一下 spring 的事务隔离?
100.说一下 spring mvc 运行流程?

1.浏览器发送请求到DispatcherServlet;
2.DispatcherServlet调用HandlerMapping处理器映射器根据url和自定义配置(xml、接口方式、注解方式)查找一些Handler拦截器,生成处理器执行链HandlerExecutionChain;
3.通过HandlerAdapter处理器适配器执行Handler
4.Handler处理器执行完成返回ModelAndView给DispatchServlet,ModelAndView包含视图逻辑名和模型数据信息。
5.ViewReslover视图解析器将逻辑视图ModeAndView解析为真实视图view
6.对view进行渲染处理结果展示在页面
101.spring mvc 有哪些组件?
102.@RequestMapping 的作用是什么?
103.@Autowired 的作用是什么?
104.spring常用的注解?

浙公网安备 33010602011771号