`

Spring MVC注解方式service和controller的扫描顺序

 
阅读更多
获得WebApplicationContext的方法:http://panyongzheng.iteye.com/admin/blogs/1477702
xml被扫描顺序参考: [url]http://sence-qi.iteye.com/blog/1328902 [/url]
由于服务器启动时的加载配置文件的顺序为web.xml---root-context.xml(Spring的配置文件)---servlet-context.xml(SpringMVC的配置文件),由于root-context.xml配置文件中Controller会先进行扫描装配,但是此时service还没有进行事务增强处理,得到的将是原样的Service(没有经过事务加强处理,故而没有事务处理能力)

所以在applicationContext.xml一定先扫描service:
<context:component-scan base-package="com" > 
		<context:exclude-filter expression="org.springframework.stereotype.Controller" type="annotation"/> 
	</context:component-scan>


然后在context-servlet.xml在扫描controller:
<context:component-scan base-package="com" use-default-filters="false" > 
		<context:include-filter expression="org.springframework.stereotype.Controller" type="annotation"/> 
	</context:component-scan>


如是没有按照这种扫描顺序,那么可能引起事务失效,或者在spring security的时候,实现FilterInvocationSecurityMetadataSource的类:
@Autowired
public IAuthoritiesService authoritiesService;
......
private void loadResourceDefine() {
/*	这里移动到DAO里面,信息从DB获取。	
  		resourceMap = new HashMap<String, Collection<ConfigAttribute>>();
		Collection<ConfigAttribute> atts = new ArrayList<ConfigAttribute>();
		ConfigAttribute adminCA = new SecurityConfig("ROLE_ADMIN");
		atts.add(adminCA);
		ConfigAttribute userCA =  new SecurityConfig("ROLE_USER");
		atts.add(userCA);
		resourceMap.put("/index.jsp", atts);*/
		//resourceMap = authoritiesService.getResourceMap();不能这样,空异常。
		authoritiesService = (IAuthoritiesService)WebApplicationUtils.getApplicationContext().getBean("authoritiesService");
		resourceMap = authoritiesService.getResourceMap();
		System.out.println("----------------------> 载入资源:loadResourceDefine()");
	}

无法调用service(NullPointException)来从数据库获取资源认证等。
分享到:
评论

相关推荐

    Spring Mvc AOP通过注解方式拦截controller等实现日志管理

    在Spring MVC框架中,AOP...通过这种方式,我们可以轻松地在Spring MVC Controller层实现日志管理,无需在每个方法中手动插入日志代码。这种解耦使得代码更易于维护,同时提供了全面的日志信息,有助于调试和性能分析。

    基于jpa+hibernate+spring+spring mvc注解方式项目

    **基于JPA+Hibernate+Spring+Spring MVC注解方式项目详解** 在现代Java Web开发中,Spring框架扮演了核心角色,而Spring MVC作为其MVC(Model-View-Controller)实现,提供了强大的Web应用程序构建能力。同时,JPA...

    spring MVC AOP注解方式如何拦截controller 例子

    以上就是使用AspectJ注解方式在Spring MVC中拦截Controller方法的基本步骤和示例。实践中,你可以根据需求调整切入点表达式,添加更多的通知类型,以满足更复杂的需求,如异常处理、性能监控等。

    spring mvc注解方式

    **Spring MVC注解方式** 1. **Controller注解**:`@Controller`是Spring MVC中的核心注解,用于标记一个类作为处理HTTP请求的控制器。在类上添加此注解后,Spring会将该类实例化,并将其纳入到Spring容器中管理。 ...

    最全的Spring MVC注解例子,异步请求,错误处理

    在这个“最全的Spring MVC注解例子”中,我们将深入探讨Spring MVC的核心注解,以及如何实现异步请求处理和错误管理。 1. **Spring MVC核心注解** - `@Controller`:标记一个类为处理HTTP请求的控制器。这是Spring...

    Spring MVC 的注解使用实例

    1. `@Controller` 注解:这个注解用于标记一个类作为Spring MVC的控制器。当Spring容器启动时,会扫描带有@Controller的类,并将这些类实例化,用于处理HTTP请求。例如: ```java @Controller public class ...

    Spring3.0MVC注解(附实例)

    本节将深入探讨Spring MVC注解及其在实际应用中的实现方式。 首先,Spring MVC注解允许开发者以声明式的方式配置控制器,避免了传统的XML配置文件。这极大地简化了代码,提高了可读性和维护性。例如,`@...

    基于注解Spring MVC环境搭建

    5. **@Service和@Repository注解** `@Service`注解用于标记业务逻辑层的bean,而`@Repository`用于数据访问层,通常与DAO(数据访问对象)一起使用。这两个注解使得Spring能够自动检测这些bean,并进行依赖注入。 ...

    spring MVC 实例代码

    基于注解的spring mvc,dao 层注解:@Repository("userDao"), entity层注解:@Entity,service层注解:@Service("userService"), action层注解:@Controller("userController") @RequestMapping("/user.do")

    Spring MVC注解项目实例

    总结起来,这个"Spring MVC注解项目实例"涵盖了Spring MVC框架的核心元素,包括注解驱动的控制器、拦截器的使用,以及数据库操作。它为初学者提供了一个动手实践的机会,帮助他们快速掌握Spring MVC的开发技巧。

    spring mvc 注解例子

    首先,`@Controller` 是Spring MVC中定义控制器的基本注解。当标记在一个类上时,表明该类是一个处理HTTP请求的控制器。例如: ```java @Controller public class MyController { // ... } ``` 接下来,`@...

    spring mvc注解实例

    2. `&lt;context:component-scan&gt;`:通过使用 `component-scan` 注解,Spring 会自动扫描指定包及其子包下的所有类,寻找带有特定注解(如 `@Controller`, `@Service`, `@Repository`, `@Component`)的类并将其注册为 ...

    spring mvc 注解实例

    1. `@Controller`:这个注解用于标记一个类作为Spring MVC的控制器。控制器负责接收HTTP请求并返回相应的视图或者数据。 2. `@RequestMapping`:此注解用于映射HTTP请求到特定的方法。可以应用于类级别或方法级别,...

    使用Spring 2.5 基于注解驱动的 Spring MVC详解

    在 Spring 2.5 中,Spring MVC 框架引入了注解驱动功能,使得开发者可以使用注解来配置 Controller,代替传统的基于 XML 的配置方式。这种方式使得 Controller 的开发变得更加灵活和方便。 使用 @Controller 注解 ...

    Spring MVC注解开发总结

    一、Spring MVC注解开发的基本实现步骤 1. **创建Web工程**:首先需要创建一个Java Web项目,包含Web-INF目录结构,以便存放Web应用的相关配置文件。 2. **设置Tomcat服务器**:配置并启动Tomcat服务器,作为Web...

    spring mvc 注解 增删改 实例

    Spring MVC 是一个强大的Java web开发框架,用于构建高效、可维护和模块化的Web应用程序。它在MVC(Model-View-Controller)设计模式的基础上提供了一种结构化的方法来组织应用程序的逻辑。在这个实例中,我们将重点...

    Spring mvc 注解理解

    在Spring 2.5版本中,引入了完全基于注解的配置,使得开发者能够更便捷地创建和管理Controller。 首先,我们来看一下Spring MVC的核心组件: 1. **DispatcherServlet**:前端控制器,它是所有HTTP请求的入口点。...

    spring MVC 注解的使用例子

    在本示例中,我们将深入探讨如何使用Spring MVC中的注解进行开发,特别是`@Controller`,`@Service` 和 `@Repository` 这三个核心注解。 1. **`@Controller` 注解**: `@Controller` 是Spring MVC中用于标记一个类...

    spring mvc + spring + hibernate 全注解整合开发视频教程 12

    在本教程中,我们将深入探讨如何使用Spring MVC、Spring和Hibernate三大框架进行全注解的整合开发。这个视频教程系列的第12部分,将帮助开发者掌握如何在Java Web项目中高效地集成这三个核心框架,实现松耦合、可...

    Spring mvc 注解Demo

    在本"Spring MVC注解Demo"中,我们将深入探讨如何利用注解简化Spring MVC的配置和控制器的实现,使其更适合初学者快速上手。 在Spring MVC中,注解的使用大大减少了XML配置,使得代码更加简洁且易于理解。以下是...

Global site tag (gtag.js) - Google Analytics