Spring系列介绍1

简介:

一、环境的搭建

1、spring依赖库
* SPRING_HOME/dist/spring.jar
* SPRING_HOME/lib/jakarta-commons/commons-logging.jar
* SPRING_HOME/lib/log4j/log4j-1.2.14.jar
2、拷贝spring配置文件到src下
3、拷贝log4j配置文件到src下
 
spring Ioc容器的关键点:
* 必须将被管理的对象定义到spring配置文件中
* 必须定义构造函数或setter方法,让spring将对象注入过来
 
普通的JavaBean:
package com.alibaba.pc2.core;

public  class User {
   private String username;
   private String password;

   public String getUsername() {
     return username;
  }

   public  void setUsername(String username) {
     this.username = username;
  }

   public String getPassword() {
     return password;
  }

   public  void setPassword(String password) {
     this.password = password;
  }
  @Override
   public String toString() {
     return username + ", " + password;
  }
}
applicationContext.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:aop ="http://www.springframework.org/schema/aop"
             xmlns:tx ="http://www.springframework.org/schema/tx"
            xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.0.xsd
                     http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-2.0.xsd
                     http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-2.0.xsd" >
  
   < bean  id ="user"  class ="com.alibaba.pc2.core.User" >
     < property  name ="username"  value ="zhangsan" />
     < property  name ="password"  value ="123" />
   </ bean >  
</ beans >
Client端调用:
package com.alibaba.pc2.core;

import org.springframework.beans.factory.BeanFactory;
import org.springframework.context.support.ClassPathXmlApplicationContext;

public  class Client {
   public  static  void main(String[] args) {
    BeanFactory factory =  new ClassPathXmlApplicationContext(
         "applicationContext.xml");
    User user = (User) factory.getBean( "user");
    System.out.println(user);
  }
}
执行结果:
zhangsan, 123

二、Spring的注入功能

1、spring的普通属性注入
参见:spring文档3.3章节
什么是属性编辑器,作用?
* 自定义属性编辑器,spring配置文件中的字符串转换成相应的对象进行注入
spring已经有内置的属性编辑器,我们可以根据需求自己定义属性编辑器
* 如何定义属性编辑器?
* 继承PropertyEditorSupport类,覆写setAsText()方法,参见:UtilDatePropertyEditor.java
* 将属性编辑器注册到spring中,参见:applicationContext-editor.xml
依赖对象的注入方式,可以采用:
* ref属性
* <ref>标签
* 内部<bean>来定义
如何将公共的注入定义描述出来?
* 通过<bean>标签定义公共的属性,指定abstract=true
* 具有相同属性的类在<bean>标签中指定其parent属性
参见:applicationContext-other.xml

三、Spring的作用域

spring Bean的作用域:
scope可以取值:
* singleton:每次调用getBean的时候返回相同的实例
* prototype:每次调用getBean的时候返回不同的实例

四、按类型或名称自动装配

@Autowired:按类型自动装配
@Resource:按照名称装配,当匹配不上时,采取按类型自动装配
 
 
【注意】
ClassPathXmlApplicationContext和FileSystemXmlApplicationContext的路径設置
 对于ClassPathXmlApplicationContext(),  classpath:  前缀是不需要的,   默认就是指项目的classpath路径下面; 如果要使用绝对路径,需要加上  file:  前缀表示这是绝对路径;对于FileSystemXmlApplicationContext(),  默认表示的是两种:   1,没有盘符的是  项目工作路径, 即项目的根目录;  2,有盘符表示的是   文件绝对路径。    如果要使用classpath路径, 需要前缀   classpath:   


本文转自 tianya23 51CTO博客,原文链接:http://blog.51cto.com/tianya23/273696,如需转载请自行联系原作者  
相关文章
|
28天前
|
缓存 Java Maven
Java本地高性能缓存实践问题之SpringBoot中引入Caffeine作为缓存库的问题如何解决
Java本地高性能缓存实践问题之SpringBoot中引入Caffeine作为缓存库的问题如何解决
|
2月前
|
Java 测试技术 数据库
Spring Boot中的项目属性配置
本节课主要讲解了 Spring Boot 中如何在业务代码中读取相关配置,包括单一配置和多个配置项,在微服务中,这种情况非常常见,往往会有很多其他微服务需要调用,所以封装一个配置类来接收这些配置是个很好的处理方式。除此之外,例如数据库相关的连接参数等等,也可以放到一个配置类中,其他遇到类似的场景,都可以这么处理。最后介绍了开发环境和生产环境配置的快速切换方式,省去了项目部署时,诸多配置信息的修改。
|
2月前
|
Java 应用服务中间件 开发者
Java面试题:解释Spring Boot的优势及其自动配置原理
Java面试题:解释Spring Boot的优势及其自动配置原理
96 0
|
20天前
|
缓存 Java 数据库连接
Spring Boot 资源文件属性配置,紧跟技术热点,为你的应用注入灵动活力!
【8月更文挑战第29天】在Spring Boot开发中,资源文件属性配置至关重要,它让开发者能灵活定制应用行为而不改动代码,极大提升了可维护性和扩展性。Spring Boot支持多种配置文件类型,如`application.properties`和`application.yml`,分别位于项目的resources目录下。`.properties`文件采用键值对形式,而`yml`文件则具有更清晰的层次结构,适合复杂配置。此外,Spring Boot还支持占位符引用和其他外部来源的属性值,便于不同环境下覆盖默认配置。通过合理配置,应用能快速适应各种环境与需求变化。
27 0
|
1月前
|
XML Java 数据库连接
Spring Boot集成MyBatis
主要系统的讲解了 Spring Boot 集成 MyBatis 的过程,分为基于 xml 形式和基于注解的形式来讲解,通过实际配置手把手讲解了 Spring Boot 中 MyBatis 的使用方式,并针对注解方式,讲解了常见的问题已经解决方式,有很强的实战意义。在实际项目中,建议根据实际情况来确定使用哪种方式,一般 xml 和注解都在用。
|
2月前
|
Java Spring 容器
Spring Boot 启动源码解析结合Spring Bean生命周期分析
Spring Boot 启动源码解析结合Spring Bean生命周期分析
80 11
|
28天前
|
缓存 Java Spring
Java本地高性能缓存实践问题之在Spring Boot中启用缓存支持的问题如何解决
Java本地高性能缓存实践问题之在Spring Boot中启用缓存支持的问题如何解决
|
2月前
|
Java 开发者 Spring
深入理解Spring Boot中的自动配置原理
深入理解Spring Boot中的自动配置原理