`
mdxdjh2
  • 浏览: 12035 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

Spring 注解配置解析

阅读更多

  非Web项目:直接加载Spring内容需要借助ClassPathXmlApplicationContext

ClassPathXmlApplicationContext context = new ClassPathXmlApplicationContext("application.xml");
context.start();

 

 Web项目:因为Tomcat等容器会加载web.xml的内容,所以在web.xml中配置如下内容即可:

<context-param>
      <param-name>contextConfigLocation</param-name>
      <param-value>classpath:applicationContext.xml</param-value>
</context-param>
	
<listener>
      <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>

 

 Spring最主要的配置则是application.xml,本文暂时只分析注解配置。

 

  【application.xml模板】

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:p="http://www.springframework.org/schema/p"
	xmlns:context="http://www.springframework.org/schema/context"
	xmlns:jdbc="http://www.springframework.org/schema/jdbc"
	xsi:schemaLocation="http://www.springframework.org/schema/beans  
                        http://www.springframework.org/schema/beans/spring-beans.xsd
                        http://www.springframework.org/schema/jdbc 
                        http://www.springframework.org/schema/jdbc/spring-jdbc.xsd
                        http://www.springframework.org/schema/context  
                        http://www.springframework.org/schema/context/spring-context.xsd">
	
</beans>

  

 【自动加载】 

<context:component-scan base-package="com.test.action"/> <!-- 加载单个 -->

 

<context:component-scan base-package="com.test.action,com.test.service,com.test.impl"/> <!-- 加载多个 -->

 

 【注解类型】

 @Component 是管理组件的通用形式,添加此注解表示把类交给Spring管理。在Spring 2.5中,提供了额外几个注解,分别是:@Repository(数据访问层Dao等)、@Service(业务层Service)、@Controller(控制层、Web层),此处用途是区分不同层次结构,应对将来Spring对应不同层次的特殊功能和优化。

 

 @Controller 对应控制层Bean,也就是Action。此处相当于LoginAction将自己(默认为"LoginAction"或者通过value="xxx"来取新名字)交给Spring管理,之后只需要通过这个名字就可以把托管的Bean找出来用。

//@Controller(value="defineLoginAction") 自定义名字
@Controller
@Scope("prototype")
public class LoginAction extends ActionSupport {
   ...
}

   

 @Service 对应业务层的Bean,原理如上。

@Service("loginService")
public class LoginService {
    ...
}

 

 @Repository 对应数据访问层Bean。

@Repository(value="userDao")
public class UserDaoImpl implements UserDao{
    ......
}

 

 @Resource 用于装配Bean(提取托管到Spring的Bean),默认按名称进行装配,放在字段或者setter方法上并且没指定name时,按照字段或者属性名进行装配,。当找不到相同名字匹配时候,才按类型装配。

@Resource(name = "loginService")
private LoginService loginService;

    =(等价于)

LoginService loginService = new LoginService();

 

 @Autowired 功能和@Resource相同,默认按类型装配,而且要求依赖对象必须存在,如果允许为null,要设置required属性为false,如:@Autowired(required=false),如果想使用名称装配可以结合@Qualifier注解进行使用,如下:

@Autowired() @Qualifier("userDao")     
private UserDao userDao;  

 

 

分享到:
评论

相关推荐

    Spring 自定义注解的解析

    在spring环境中通过component-scan配置处理自定义java注解

    spring注解aop配置详解

    最近使用了springAOP编程,文档里面包含了springAOP的代码示例及详细注释说明,使用的是注解配置模式

    Spring核心注解深入解析:提升开发效率

    @Component 和其派生注解(@Repository、@Service、@Controller)标记类为Spring组件,允许Spring通过类路径扫描自动检测和配置这些类。 @Autowired 注解用于自动注入依赖,它可以放置在字段、构造器、setter方法或...

    Java之Spring注解配置bean实例代码解析

    主要介绍了Java之Spring注解配置bean实例代码解析,具有一定参考价值,文中还有有关Spring学习的资料下载链接及相关内容推荐,需要的朋友可以了解下。

    Spring @Bean注解配置及使用方法解析

    主要介绍了Spring @Bean注解配置及使用方法解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下

    Spring高级之注解驱动开发视频教程

    n 高级特性-自定义PropertySourceFactory实现解析yaml配置文件 n 源码分析-BeanFactory类视图和常用工厂说明 n 源码分析-AnnotationConfigApplicationContext的register方法 n 源码分析-...

    Spring Boot实战与原理分析视频课程包含14-18

    9 Spring Boot @Enable*注解的工作原理47:07 10 Spring Boot @EnableAutoConfiguration深入分析30:55 11 Spring Boot 事件监听27:53 --四种方式讲解如何配置事件监听 12 Spring Boot 扩展分析33:54 13 Spring ...

    Spring源码解析文件说明

    主要详细记载了对Spring注解开发的源码解析,从IOC创建到bean的注册等一系列配置说明

    Spring纯注解配置实现代码示例解析

    主要介绍了Spring纯注解配置实现代码示例解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下

    深入理解Spring与Dubbo整合原理与源码分析:从启动类配置到注解解析

    首先,我们从应用启动类与配置入手,详细解析了@PropertySource和@EnableDubbo两个重要注解的作用和实现方式。然后,我们深入研究了@EnableDubboConfig和@DubboComponentScan两个核心注解,详细解读了它们在Spring...

    深入理解Spring与Dubbo整合原理与源码分析:从启动类配置到注解解析.rar

    深入理解Spring与Dubbo整合原理与源码分析:从启动类配置到注解解析

    Spring对注解(Annotation)处理源码分析

    Spring对注解(Annotation)处理源码分析 解析和注入注解配置的资源 源码级别的分析

    spring.net中文手册在线版

    Spring.NET是一个应用程序框架,其目的是协助开发人员创建企业级的.NET应用程序。它提供了很多方面的功能,比如依赖注入、面向方面编程(AOP)、数据访问抽象及ASP.NET扩展等等。Spring.NET以Java版的Spring框架为...

    全注解零配置Spring/SpringMVC/Mybatis/Swagger

    全注解零配置Spring/SpringMVC/Mybatis/Swagger,工程里有初始化脚本。

    Spring3MVC注解教程.ppt

    本地化:Spring MVC的本地化解析器 本地化:Spring MVC的本地化解析器 LocaleChangeInterceptor:通过URL参数指定 静态资源处理 静态资源处理:使REST风格的URL成为实现 静态资源处理:原理 静态资源处理:如何配置...

    springweb3.0MVC注解(附实例)

    -- ②:启动Spring MVC的注解功能,完成请求和注解POJO的映射 --&gt; &lt;bean class="org.springframework.web.servlet.mvc.annotation. AnnotationMethodHandlerAdapter"/&gt; &lt;!-- ③:对模型视图名称的解析,即在模型...

    SSM框架教程Spring+SpringMVC+MyBatis全覆盖_Java热门框架视频教程

    13、Spring注解方式配置AOP 14、Spring编程式事务控制介绍 15、Spring基于XML方式的声明式事务控制 16、Spring基于注解方式声明式事务控制 SpringMVC部分: 1、SpringMVC简介 2、SpringMVC组件解析 3、SpringMVC...

    springCloud

    一 服务启动 此项目集成了:Feign,Spring Cloud Bus,hystrix,swagger-ui,zuul-filter,配置中心功能 1)安装rabbitMQ 2)启动cloud—eureka :此时可访问 localhost:8761 3)启动 cloud-config 此处为配置中心 ...

    Spring AOP源码深度解析:掌握Java高级编程核心技术

    Spring AOP(面向切面编程)是Java高级编程中的重要...Spring AOP的配置方式多样,包括基于接口的配置、schema-based配置和@AspectJ注解配置。通过这些配置方式,开发者可以灵活地实现AOP功能,满足不同场景下的需求。

Global site tag (gtag.js) - Google Analytics