spring-零配置

spring框架提供xml文件的配置,也提供基于注解的方式实现配置任何的Bean实例,目前,struts2、hibernate和spring都相继支持基于注解的实现方式。spring要求程序员指定搜索哪些路径下的java类,spring会把合适的java类全部注册成spring bean。

下面对基本的注解进行简要的解释和使用示例。

1、@Component:标注一个普通的spring bean

(1)、编写java代码

student:

package cn.study.basic.test7;

import org.springframework.stereotype.Component;

@Component
public class Student implements People {

	@Override
	public void action() {
		System.out.println("studing^^");
	}

}

worker:

package cn.study.basic.test7;

import org.springframework.stereotype.Component;

@Component
public class Worker implements People {

	@Override
	public void action() {
		System.out.println("working");
	}

}

(2)、bean.xml配置文件,base-package指定要搜索的包的路径

<context:component-scan base-package="cn.study.basic.test7.Student"></context:component-scan>

补充:context:component节点下有include-filter和exclude-filter节点,配置文件的格式如下

<context:component-scan base-package="cn.study.basic.test7">
<context:include-filter type="regex" expression=""/>
<context:exclude-filter/>
</context:component-scan>
  • include-filter用于指定spring bean类,只要位于指定路径下的java类满足这种规则,即使这些java类没有使用annotation标注,spring一样将会把它们当做Bean类来处理
  • type:指定过滤器类型
  • expression:指定过滤器所需要的表达式

spring支持4种过滤器:

  • regex:正则表达式过滤器,配置改正则表达式的java类,如:.*Chinese
  • annotation: annotation过滤器
  • aspectj:AspectJ过滤器
  • assignable:类名过滤器该过滤器直接指定一个java类

(3)、代码测试

package cn.study.basic.test7;

import org.junit.Test;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;

public class TestMain {
	@Test
	public void testMain() throws Exception {
		ApplicationContext ctx=new ClassPathXmlApplicationContext("bean.xml");
		System.out.println(java.util.Arrays.toString(ctx.getBeanDefinitionNames()));
	}
}

运行代码,结果如下:

[student, worker, org.springframework.context.annotation.internalConfigurationAnnotationProcessor, org.springframework.context.annotation.internalAutowiredAnnotationProcessor, org.springframework.context.annotation.internalRequiredAnnotationProcessor, org.springframework.context.annotation.internalCommonAnnotationProcessor, dog, dd, myBeanPostProcessor, ch, axe, account, cn.study.basic.EmailListener#0, pl, spContext]

从上面的结果可以看出,如果没有在component中进行命名,则spring框架默认使用类的名称,并且小写首字母

(2)@Service,标注一个业务逻辑组件类,通常是多层架构的Service层

(3)@Controller 标注一个控制器组件类,在struts中通常是Action层
(4)@Repository 标注一个DAO组件类

(5)@Scope():指定当前的Bean示例的作用域,默认值是singleton

(6)@Resource:

(7)@PostConstruct:作用与在配置文件中的init-method一样

(8)@PreDestroy:作用与在配置文件中的destroy-method一样

时间: 2024-08-29 04:55:57

spring-零配置的相关文章

Spring零配置

@Component :标注一个普通的Spring Bean类. @Controller: 标注一个控制器组件类. @Service:标注一个业务逻辑组件类. @Repository:标注一个DAO组件类. 首先要使用注解需要配置Spring自动扫描的包 <!-- 自动扫描该路径下的所有类 --> <context:component-scan base-package="com.manager"/> 将ScheduleDaoImp类注入在Spring中,此时S

Spring4.X + spring MVC + Mybatis3 零配置应用开发框架搭建详解(1) - 基本介绍

Spring4.X + spring MVC + Mybatis3 零配置应用开发框架搭建详解(1) - 基本介绍 spring集成 mybatis Spring4.x零配置框架搭建 两年前一直在做后台的纯Java开发,很少涉及web开发这块,最近换了个纯的互联网公司,需要做Web后台管理系统,之前都是用xml配置的项目,接触了公司Spring4.x的零配置项目,觉得非常有感觉,不仅仅配置简单,而且条理清晰,所以,这里把学习的内容记录下来,一来加深对这块技术的印象,另外准备做个简单的教程,如果给

SpringMvc4.2.5 零配置出现 No mapping found for HTTP request with URI(转)

原文地址:SpringMvc4.2.5 零配置出现 No mapping found for HTTP request with URI 采用 spring 零配置,参考 http://hanqunfeng.iteye.com/blog/2113820,WebInitializer 类代码如下: public class WebInitializer implements WebApplicationInitializer { private static final Logger logger

Spring AOP基于注解的“零配置”方式

Spring AOP基于注解的“零配置”方式: Spring的beans.xml中 <!-- 指定自动搜索Bean组件.自动搜索切面类 --> <context:component-scan base-package="org.crazyit.app.service,org.crazyit.app.aspect"> <context:include-filter type="annotation" expression="or

基于纯Java代码的Spring容器和Web容器零配置的思考和实现(3) - 使用配置

经过<基于纯Java代码的Spring容器和Web容器零配置的思考和实现(1) - 数据源与事务管理>和<基于纯Java代码的Spring容器和Web容器零配置的思考和实现(2) - 静态资源.视图和消息器>两篇博文的介绍,我们已经配置好了Spring所需的基本配置.在这边博文中,我们将介绍怎么使用这些配置到实际项目中,并将web.xml文件替换为一个Java类. 我们使用Java代码来配置Spring,目的就是使我们的这些配置能够复用,对于这些配置的复用,我们采用继承和引入来实现

spring boot基础之servlet3.0和spring4.x零配置相关文章

Servlet 3 + Spring MVC零配置:去除所有xml Spring4中的WebApplicationInitializer理解 servlet3注解替代web.xml 利用WebApplicationInitializer配置SpringMVC取代web.xml servlet3.0 ServletContainerInitializer初始化器 servlet 3.0笔记之servlet的动态注册 一个基于注解配置的Web项目的启动流程分析 SpringMVC4零配置 servl

【学习】Spring 的 AOP :基于Annotation 的“零配置”方式

转自:http://www.cnblogs.com/jbelial/archive/2012/07/20/2539123.html AOP(Aspect Orient Programming ) , 面向切面编程 . 1.AOP的基本概念: AOP框架并不与特定的代码耦合,AOP框架能处理程序执行中特定的切入点(Pointcut),而不与具体某个类耦合.AOP框架具有如下特征: 1.各步骤之间的良好隔离性. 2.源代码无关性. AOP的专业术语: 1.Aspect(切面) : 应用运行过程中的关

Spring Web工程web.xml零配置即使用Java Config + Annotation

摘要: 在Spring 3.0之前,我们工程中常用Bean都是通过XML形式的文件注解的,少了还可以,但是数量多,关系复杂到后期就很难维护了,所以在3.x之后Spring官方推荐使用Java Config方式去替换以前冗余的XML格式文件的配置方式: 在开始之前,我们需要注意一下,要基于Java Config实现无web.xml的配置,我们的工程的Servlet必须是3.0及其以上的版本: 1.我们要实现无web.xml的配置,只需要关注实现WebApplicationInitializer这个

Spring 使用介绍(八)—— 零配置

一.概述 所谓零配置,并不是说一点配置都没有了,而是配置很少而已.通过约定来减少需要配置的数量,提高开发效率. 零配置实现主要有以下两种方式: 惯例优先原则:也称为约定大于配置(convention over configuration),即通过约定代码结构或命名规范来减少配置数量,同样不会减少配置文件:即通过约定好默认规范来提高开发效率. 基于注解的规约配置:通过在指定类上指定注解,通过注解约定其含义来减少配置数量,从而提高开发效率:如事务注解@Transaction是不是基于注解的规约,只有

Spring MVC的WebMvcConfigurerAdapter用法收集(零配置,无XML配置)

原理先不了解,只记录常用方法 用法: @EnableWebMvc 开启MVC配置,相当于 <?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:mvc="http://www.springframework.org/schema/mvc" xmlns:xsi