spring的意思是:春天。
读音:英[sprɪŋ],美[sprɪŋ]。
释义:
n.春天;d簧;泉水;活力;跳跃。
adj.春天的。
vi.生长;涌出;跃猛让出;裂开。
vt.使跳起;使爆炸;突然提出;使d开。
变形:过去式sprang或sprung,过去分词sprung,现在分词springing,第三人称单数springs,复数springs。
短语:
mineral spring矿泉。
air spring气垫。
spring break春假。
spring的用法
spring可作“跳”“跳跃”解,引申可指“d簧,发条”“泉水”,是可数名词。
spring跟带有延续性的介词(如during,throughout)时,前面要加定冠词the。
spring既可用作及物动词,也可用作不及物动词。用作及物动词时,接名词、代词作宾语,有时可接由形容瞎老词充当补足语的复合枝神局宾语。
spring前可带介词in,during等,如in spring,in the spring,during the spring(the不可省略)。当表示某个季节来临时,不带the,如Spring has come。
Spring 框架是一个轻量级的 Java 开发框架,笑察为应用开发提供平台。它是为了解决企业应用开发的复杂性而创建的。框架的主要优势之一是分层架构,分层架构允许使用者选择使用哪一个组件,同时为 J2EE 应用程序开发提供继承的框架。Spring的主要特征
1)IOC(控制反碰神茄转)或DI(依赖注入):明确定义组件的接口,独立开发各个组件,然后根据组件的依赖关系组装运行即将创建及管理对象的权利交给Spring容器。Spring是一个轻型容器(light-weight Container),其核心是Bean工厂(Bean Factory),用以瞎庆构造我们所需要的M(Model),能够让相互协作的软件组件保持松散耦合,降低了业务对象替换的复杂性,提高了组件之间的解耦。
2)AOP(面向切面编程):通过预编译方式和运行期动态代理实现在不修改源代码的情况下给程序动态统一添加功能的一种技术。即系统级的服务从代码中解耦出来。例如:将日志记录、性能统计、安全控制、事务处理、异常处理等代码从业务逻辑代码中划分出来,它允许你把遍布应用各处的功能分离出来形成可重用组件。
简而言之,Spring是企业级Java的开源开发框架。Spring框架的核心功能可用于开发任何java应用程序。Spring框架的核心模块如下:
任何由 Spring IoC 容器初始化的普通 Java 类都称为 Spring Bean。我们使用 spring 应用程序上下文来获取 Spring Bean 实例。 Spring IoC Container 管理 Spring Bean 范围/作用域的生命周期并在 bean 中注入任何所需的依赖项。
Spring bean的不同作用域:
对于任何 Java 应用程序,都有两个不同的作用域,称为单例(Singleton)和原型(Prototype)
主要有三种不同的作用域(或范围),即昌皮 请求(request)、会话(session)和全局会话(global-session) ,专门针对基于 Spring 的 Java Web 应用程序。
Singleton 是任何 bean 的默认作用域。这意味着每个 IoC 容器将创建单个 bean 实例。因此,单例 bean 不是线程安全的。
要设置 spring bean 的范围,我们可以在 标签中使用scope属性。 @scope 用于基于注释的 DI。
Spring 容器是 Spring 框架的核心。容器将创建对象,把它们连接在一起,配置它们,并管理它世乱们从创建到销毁的完整生命周期。 Spring 容器使用依赖注入 (DI) 来管理组成应用程序的组件。
有两种不同类型的容器:
BeanFactory 容器 :这是 Spring 容器的核心。 org.springframework.beans.factory.BeanFactory 是一个接口,充当 IoC 容器,它实例化、配置和管理许多 bean。应用示例如下:
ApplicationContext 容器 :org.springframework.context.ApplicationContext 接口也充当 IoC 容器,但 ApplicationContext 接口建立在 BeanFactory 接口之上,以提供一些BeanFactory 额外的功能,例如与 Spring 的 AOP 的简单集成、消息资源处理(对于 I18N )、事件传播、Web 应用程序的应用层特定上下文(例如 WebApplicationContext)。所以使用 ApplicationContext 比使用 BeanFactory更好些。示耐返差例代码如下:
对于基于注解的依赖注入,使用@Autowired 注解。标有@Component/@Service/@Repository 等的类可以注入到标有@Autowired 的属性中
@Autowired 应用于:
1)基于构造器和setter的区别
2)context:annotation-config 和 context:component-scan 的区别
3)@Component、@Controller、@Repository &@Service 注解的区别
如果一个类用@Component/@Controller/@Service/@Repository 注解标记,那么Spring DI 容器可以在组件扫描机制期间识别该类。但是,对于服务层类使用@Service 是个好主意,并且@Controller 应该在spring mvc web 控制器中使用。 @Repository 用于将 DAO 导入 DI 容器。此外,任何未经检查的异常都将被转换为 Spring DataAccessException。
4)ViewResolver 与 MultipartResolver
ViewResolver 用于按名称解析视图。该接口由 InternalResourceViewResolver 实现
MultipartResolver 用于处理 web 应用程序中的文件上传。
5)Spring MVC 中的验证
org.springframework.validation.Validator 接口支持 spring MVC 验证。验证表单的一些实用方法是 ValidationUtils 类中的 rejectIfEmptyOrWhitespace() 和 rejectIfEmpty()。示例如下:
Spring MVC 中验证表单的另一种方法是:
HandlerInterceptor 接口充当 spring MVC 拦截器。它在服务请求之前和之后拦截。如果您实现了 HandlerInterceptor 接口,则 preHandle()、postHandle() 和 afterCompletion() 是要覆盖的方法。但是,为了避免覆盖,您可以使用 HandlerInterceptorAdapter 类。
实现 ServletContextAware 和 ServletConfigAware 接口并覆盖以下方法:
数据库事务是一组被视为关联工作单元的 *** 作。事务的主要原则是提交所有 *** 作或在失败的情况下回滚所有 *** 作。在交易中提交数据时,我们需要确保交易协议/称为 ACID(原子性-一致性-隔离-持久性)的属性:
全局事务 vs 本地事务:
脏读、幻读和不可重复读:
隔离与传播:
在旧版本的 spring 和 hibernate 集成中,需要 HibernateDAOSupport 和 HibernateTemplate。但是,较新版本的 Spring 不建议使用这两个类(这里仅做了解)。
通常我们从 HibernateDAOSupport 扩展我们的 DAO 类,并且 getHibernateTemplate() 方法将可用于Hibernate会话中的 CRUD *** 作。由于这不是推荐的方法,所以我们在 DAO 中注入会话工厂(SessionFactory)。下面的代码片段会给你一些关于 HibernateDAOSupport 和 HibernateTemplate 的想法:
DAO 是一种设计模式,以最大限度地减少应用程序和后端之间的耦合;
ORM 处理如何将对象映射到对象关系数据库中,从而减少数据库和应用程序之间的耦合。
如果您在没有 DAO 的情况下使用 ORM,那么您的应用程序将变得依赖于 ORM,因此很难从一个 ORM(例如Hibernate)移动到另一个 ORM(例如 NoSQL)。
Spring DAO 是使用@Repository 注解实现的。 Spring 存储库扩展 JPARepository 并传递 JPA 实体及其主键。
最后,关于Spring框架相关的概念就简要介绍到这里,希望这能给你进入并深入Spring技术栈一个简单入口,而不会被Spring技术生态所惊吓(Spring现在都成软件开发技术的全家桶了,啥都有)——日进一步,锲而不舍,终将大成!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)