`
空指针异常
  • 浏览: 23276 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类

Spring下载网址以及相关知识点

阅读更多
Jar包和文档下地址:
http://repo.spring.io/release/org/springframework/spring/

源代码下载地址:
https://github.com/spring-projects/spring-framework
可以选择需要的版本,右下角有个按钮“Download ZIP”

本文以Spring3.2.8为例

一、Spring自动装配类型
1.byType
2.byName

二、@Autowired和@Resource的区别
1.@Autowired
a.此注解属于spring实现的注解。
b.默认装配类型为byType。如果同时存在多个同一类型的bean,且没有指定其中一个,会报异常;如果想指定其中一个,可通过@qualifier("beanName")指定。

2.@Resource
a.此注解属于J2EE标准注解。在(JAVAX包内)
b.默认装配类型为byName。如果名称找不到对应类型,则会按类型匹配。但要注意一旦指定了名字,如@Resource(name="beanName"),如果找不到指定的bean,则会抛异常,不会再按类型匹配。

三、自动扫描组件机制
    spring配置文件中加入如下配置
<context:component-scan base-package="com.pkg" />
,spring会自动在类路径下寻找标有@Compoent,@Controller,@Service,@Repository等注解的类,并将这些类纳入spring的窗口管理,这四个注解实现上没有太大区别,估计是以后扩展用吧,可以用来指定不同的层所对应的类,它们有一个共同的属性value,可以用来指定bean的名称,如果没有指定,则会以类名第一个字母小写作为名称。

四、hibernate在spring中的几个实现类,具体用法可参考文档。
1.HibernateTemplate.下文摘自spring文档
 
HibernateTemplate will ensure that Session instances are properly opened and closed, and automatically participate in transactions. The template instances are thread-safe and reusable, they can thus be kept as instance variables of the surrounding class.

2.继承HibernateDaoSupport
 
Spring provides a convenient HibernateDaoSupport base class that provides a setSessionFactory(..) method for receiving a SessionFactory, and getSessionFactory() and getHibernateTemplate()for use by subclasses.

两者比较 :
  
HibernateDaoSupport allows any checked application exception to be thrown within the data access code; but HibernateTemplate class throwing only unchecked exceptions within the callback.

 
五、AOP in spring
    代理方式默认为JDK动态代理,也可以是CGLIB代理。关于AOP的其它概念可参考spring文档,文档里对pointcut和advice的类型都进行了详细的说明,此处只提取下面的例子
package x.y;
import org.aspectj.lang.ProceedingJoinPoint;
import org.springframework.util.StopWatch;

public class SimpleProfiler {

   public Object profile(ProceedingJoinPoint call, String name, int age) throws Throwable {
      StopWatch clock = new StopWatch(
            "Profiling for '" + name + "' and '" + age + "'");
      try {
         clock.start(call.toShortString());
         return call.proceed();
      } finally {
         clock.stop();
         System.out.println(clock.prettyPrint());
      }
   }
}


<beans xmlns="http://www.springframework.org/schema/beans"
      xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
      xmlns:aop="http://www.springframework.org/schema/aop"
      xsi:schemaLocation="
http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop.xsd">

   <!-- this is the object that will be proxied by Spring's AOP infrastructure -->
   <bean id="fooService" class="x.y.service.DefaultFooService"/>

   <!-- this is the actual advice itself -->
   <bean id="profiler" class="x.y.SimpleProfiler"/>

   <aop:config>
      <!-- 定义切面bean -->
      <aop:aspect ref="profiler">
         <!-- 定义哪些方法需要进行代理 -->
         <aop:pointcut id="theExecutionOfSomeFooServiceMethod"
                    expression="execution(* x.y.service.FooService.getFoo(String,int))
                    and args(name, age)"/>
         <!-- 代理的方法(profile)以及代理方式(aop:around) -->
         <aop:around pointcut-ref="theExecutionOfSomeFooServiceMethod"
                  method="profile"/>

      </aop:aspect>
   </aop:config>

</beans>
分享到:
评论

相关推荐

    spring知识点总结

    这样的总结对于快速回顾和记忆Spring知识点非常有用。 **学习路径** 对于初学者,首先应该理解Spring的基本概念,如IoC和AOP,然后逐步学习Spring的各个模块,例如Spring MVC(用于构建Web应用)、Spring JDBC和...

    SpringCloud系列Demo代码,每个子项目都是SpringCloud的一个知识点

    SpringCloud系列Demo代码,每个子项目都是SpringCloud的一个知识点或者说技能点且都有对应的博客介绍,代码开箱即用适合新手学习或老司机复习。 SpringCloud系列Demo代码,每个子项目都是SpringCloud的一个知识点...

    spring AOP 理论知识点总结.wps

    spring AOP 理论知识点总结.wpsspring AOP 理论知识点总结.wpsspring AOP 理论知识点总结.wps

    spring知识点讲解

    下面将详细讲解Spring框架的关键知识点。 一、Spring 原理讲解 1. 依赖注入(Dependency Injection,DI):Spring的核心特性之一,通过DI,Spring可以在运行时将对象需要的依赖关系传递给它,而不是由对象自己创建...

    struts2+hibernate+spring三大框架知识点笔记

    Spring框架的关键知识点包括: 1. **依赖注入**:通过容器管理组件间的依赖关系,提高代码的灵活性和可测试性。 2. **AOP**:实现日志、事务等横切关注点的模块化,提高代码组织性。 3. **Spring MVC**:Spring提供...

    spring知识点梳理

    spring从搭建配置到简单开发的一个整体流程,比较适合打基础的朋友!

    springcloud汇总知识点,从零到精通

    springcloud汇总知识点,从零到精通springcloud汇总知识点,从零到精通springcloud汇总知识点,从零到精通springcloud汇总知识点,从零到精通springcloud汇总知识点,从零到精通springcloud汇总知识点,从零到精通...

    Spring Cloud知识点学习思维导图

    Spring Cloud是基于Spring Boot实现的一套微服务框架,它提供了在...通过"Spring Cloud知识点学习思维导图",我们可以清晰地看到各个组件的作用以及它们如何协同工作,这对于深入理解并有效应用Spring Cloud至关重要。

    spring中所需要的知识点及学习方向文档

    Spring AOP提供面向切面的编程,用于处理横切关注点,如日志、事务管理等。Spring MVC是Spring框架的一部分,用于构建Web应用,提供模型-视图-控制器架构。 总的来说,学习Spring应从其核心概念、配置文件解析、IoC...

    Spring知识点讲解(建议英语听力好的下载)

    根据提供的信息,我们可以深入探讨与“Spring框架”相关的知识点。虽然描述部分并未提供具体的信息,但从标题中可以明确看出这是关于Spring框架的知识讲解。接下来,我们将详细介绍Spring框架的基础概念、核心特性...

    Spring 相关jar包

    现在,我们逐一探讨这些关键知识点。 1. **依赖注入(IOC)**:依赖注入是Spring的核心功能,它允许开发者解耦组件间的依赖关系。在传统编程中,对象通常会自行创建所需的依赖对象,但在IOC中,这些依赖由外部容器...

    spring阶段知识点总结xmind

    spring阶段知识点总结

    spring知识点代码示例整理

    Spring 框架是 Java 开发中的核心框架之一,它为构建企业级应用程序提供了全面的解决方案。本资源包含了 Spring 框架多个关键模块的代码示例,旨在...学习并掌握这些知识点对于提升 Java 开发者的技能水平至关重要。

    Spring插件下载教程

    ### Spring插件下载教程知识点详解 #### 一、Spring Tool Suite (STS) 概述 - **Spring Tool Suite**:一款由Spring官方推荐的强大Eclipse插件,它为开发者提供了全面的支持工具,尤其是在处理Spring Bean定义文件...

    spring知识点

    spring知识点:作为初学者详细整理了spring的相关知识点 便于复习面试

    spring-boot - spring-boot小知识点

    通过以上知识点的梳理,我们可以看到Spring Boot作为一个现代化的框架,从自动配置、起步依赖到生产部署,每个方面都旨在简化Spring应用的开发和运维工作。其轻量级的特性、灵活的配置方式以及强大的集成能力,使得...

    SpringCloud项目源码下载.docx

    根据提供的文件信息,我们可以深入探讨与Spring Cloud相关的知识点。尽管文档标题和描述较为简单,但可以从这些信息中提炼出关于Spring Cloud项目的源码下载、Spring Cloud的基本概念、用途及其核心组件等方面的内容...

    Spring5.0下载官网下载包

    以下是关于"Spring5.0下载官网下载包"的详细知识点: 1. **Spring5.0新特性** - **反应式编程支持**:Spring5引入了对Reactive Streams和Project Reactor的支持,这是对非阻塞、响应式编程模型的实现,适用于高...

    spring一些常用知识点

    在本文中,我们将深入探讨Spring框架的一些核心知识点,以帮助开发者更好地理解和应用这一强大的工具。 1. **依赖注入(Dependency Injection, DI)**:Spring的核心特性之一,它允许组件之间的依赖关系在运行时被...

    spring框架核心知识点

    spring框架核心知识点

Global site tag (gtag.js) - Google Analytics