非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环境中通过component-scan配置处理自定义java注解
最近使用了springAOP编程,文档里面包含了springAOP的代码示例及详细注释说明,使用的是注解配置模式
@Component 和其派生注解(@Repository、@Service、@Controller)标记类为Spring组件,允许Spring通过类路径扫描自动检测和配置这些类。 @Autowired 注解用于自动注入依赖,它可以放置在字段、构造器、setter方法或...
主要介绍了Java之Spring注解配置bean实例代码解析,具有一定参考价值,文中还有有关Spring学习的资料下载链接及相关内容推荐,需要的朋友可以了解下。
主要介绍了Spring @Bean注解配置及使用方法解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
n 高级特性-自定义PropertySourceFactory实现解析yaml配置文件 n 源码分析-BeanFactory类视图和常用工厂说明 n 源码分析-AnnotationConfigApplicationContext的register方法 n 源码分析-...
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注解开发的源码解析,从IOC创建到bean的注册等一系列配置说明
主要介绍了Spring纯注解配置实现代码示例解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
首先,我们从应用启动类与配置入手,详细解析了@PropertySource和@EnableDubbo两个重要注解的作用和实现方式。然后,我们深入研究了@EnableDubboConfig和@DubboComponentScan两个核心注解,详细解读了它们在Spring...
深入理解Spring与Dubbo整合原理与源码分析:从启动类配置到注解解析
Spring对注解(Annotation)处理源码分析 解析和注入注解配置的资源 源码级别的分析
Spring.NET是一个应用程序框架,其目的是协助开发人员创建企业级的.NET应用程序。它提供了很多方面的功能,比如依赖注入、面向方面编程(AOP)、数据访问抽象及ASP.NET扩展等等。Spring.NET以Java版的Spring框架为...
全注解零配置Spring/SpringMVC/Mybatis/Swagger,工程里有初始化脚本。
本地化:Spring MVC的本地化解析器 本地化:Spring MVC的本地化解析器 LocaleChangeInterceptor:通过URL参数指定 静态资源处理 静态资源处理:使REST风格的URL成为实现 静态资源处理:原理 静态资源处理:如何配置...
-- ②:启动Spring MVC的注解功能,完成请求和注解POJO的映射 --> <bean class="org.springframework.web.servlet.mvc.annotation. AnnotationMethodHandlerAdapter"/> <!-- ③:对模型视图名称的解析,即在模型...
13、Spring注解方式配置AOP 14、Spring编程式事务控制介绍 15、Spring基于XML方式的声明式事务控制 16、Spring基于注解方式声明式事务控制 SpringMVC部分: 1、SpringMVC简介 2、SpringMVC组件解析 3、SpringMVC...
一 服务启动 此项目集成了:Feign,Spring Cloud Bus,hystrix,swagger-ui,zuul-filter,配置中心功能 1)安装rabbitMQ 2)启动cloud—eureka :此时可访问 localhost:8761 3)启动 cloud-config 此处为配置中心 ...
Spring AOP(面向切面编程)是Java高级编程中的重要...Spring AOP的配置方式多样,包括基于接口的配置、schema-based配置和@AspectJ注解配置。通过这些配置方式,开发者可以灵活地实现AOP功能,满足不同场景下的需求。