Spring本质上是一个轻量级的集成框架,可用于用Java开发企业应用程序。前端
一些重要的Spring Framework模块是:java
重要的注释是:程序员
Bean是构成Spring应用程序主干的对象。它们由Spring IoC容器管理。换句话说,bean是一个由Spring IoC容器实例化,组装和管理的对象。面试
Spring bean中定义了五个范围。spring
DispatcherServlet基本上是Spring MVC应用程序中的前端控制器,由于它加载了Spring bean配置文件并初始化全部已配置的bean。若是启用了注释,它还将扫描软件包以配置任何使用@ Component,@ Controller,@ Repository或@Service注释进行注释的bean。数据库
另外一方面,ContextLoaderListener是在Spring根目录中启动和关闭WebApplicationContext的侦听器。它的一些重要功能包括将Application Context的生命周期与ServletContext的生命周期绑定在一块儿,并自动建立ApplicationContext。编程
没有。 | 构造函数注入 | setter注射 |
---|---|---|
1) | 无局部注入 | 部分注射 |
2) | 不覆盖setter属性 | 若是定义了构造函数,则重写它们。 |
3) | 若是发生任何修改,则建立一个新实例 | 若是更改属性值,则不会建立新实例 |
4) | 对于太多的属性更好 | 更好的一些属性。 |
自动装配使程序员可以自动注入Bean。咱们不须要编写显式的注入逻辑。 让咱们看看使用依赖注入来注入bean的代码。spring-mvc
<bean id = “ emp” class = “ com.javatpoint.Employee” autowire = “ byName” />
自动装配模式以下:安全
没有。 | 模式 | 描述 |
---|---|---|
1) | 没有 | 这是默认模式,这意味着未启用自动装配。 |
2) | 按名字 | 根据属性名称注入bean。它使用setter方法。 |
3) | 按类型 | 根据属性类型注入bean。它使用setter方法。 |
4) | 构造函数 | 它使用构造函数注入bean |
Spring MVC Framework提供了如下方法来帮助咱们实现可靠的异常处理。session
咱们能够在控制器类中定义异常处理程序方法。咱们所须要作的就是使用@ExceptionHandler注释对这些方法进行注释。
异常处理是一个跨领域的问题,Spring提供了@ControllerAdvice批注,咱们能够将其与任何类一块儿使用来定义全局异常处理程序。
对于通常的异常,大多数时候咱们提供静态页面。Spring Framework提供了HandlerExceptionResolver接口,咱们能够经过该接口来建立全局异常处理程序。这种定义全局异常处理程序的其余方法背后的缘由是,Spring框架还提供了默认实现类,咱们能够在咱们的Spring bean配置文件中定义这些默认实现类,以得到Spring框架异常处理的好处。
我在项目中使用的一些Spring注释是:
@Controller –用于Spring MVC项目中的控制器类。
@RequestMapping –用于在控制器处理程序方法中配置URI映射。这是一个很是重要的注释,所以您应该阅读Spring MVC RequestMapping注释示例
@ResponseBody –用于发送对象做为响应,一般用于发送XML或JSON数据做为响应。
@PathVariable –用于将动态值从URI映射处处理程序方法参数。
@Autowired –用于自动装配Spring bean中的依赖项。
@Qualifier –带有@Autowired注释,以免在存在多个bean类型的实例时形成混淆。
@Service –用于服务类。
@Scope –用于配置Spring bean的范围。
@ Configuration,@ ComponentScan和@Bean –用于基于Java的配置。
AspectJ注释,用于配置方面和建议,@ Aspect,@ Before,@ After,@ Around,@ Pointcut等。
若是您使用的是SessionFactory提供当前会话的Hibernate 3+,那么咱们可使用Spring ORM模块来集成Spring和Hibernate框架,那么您应该避免使用HibernateTemplate或HibernateDaoSupport类,而最好使用带有依赖项注入的DAO模式进行集成。
另外,Spring ORM还提供了对使用Spring声明式事务管理的支持,所以您应该利用它,而不是使用休眠的样板代码进行事务管理。
Spring支持两种类型的事务管理。他们是: