Spring框架总结(二)

开发一个简单的Spring项目:

一、开发环境搭建:
1、引入源码jar :3.0以前的版本含有依赖jar包,3.0以后只有spring的核心jar

core的jar包
commons-logging-1.1.3.jar
spring-beans-3.2.5.RELEASE.jar
spring-context-3.2.5.RELEASE.jar
spring-core-3.2.5.RELEASE.jar
spring-expression-3.2.5.RELEASE.jar

jar包可以在官网下载:http://repo.spring.io/release/org/springframework/spring/

2、创建一个xml文档,命名为applicationContext.xml

导入必须的schema

 1     <beans xmlns="http://www.springframework.org/schema/beans"
 2     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
 3     xmlns:p="http://www.springframework.org/schema/p"
 4     xmlns:context="http://www.springframework.org/schema/context"
 5     xsi:schemaLocation="
 6         http://www.springframework.org/schema/beans
 7         http://www.springframework.org/schema/beans/spring-beans.xsd
 8         http://www.springframework.org/schema/context
 9         http://www.springframework.org/schema/context/spring-context.xsd">
10
11 </beans>   

这些都需要,就不必删减了。留着吧。

3、创建例子

user

 1 package com.liuyang.spring;
 2
 3 public class User {
 4     String _id;
 5     String _username;
 6
 7     public User() {
 8         System.out.println("========创建类========");
 9     }
10
11     public String get_id() {
12         return _id;
13     }
14
15     public void set_id(String _id) {
16         this._id = _id;
17     }
18
19     public String get_username() {
20         return _username;
21     }
22
23     public void set_username(String _username) {
24         this._username = _username;
25     }
26 }

4、创建xml

 1 <?xml version="1.0" encoding="UTF-8"?>
 2 <beans xmlns="http://www.springframework.org/schema/beans"
 3     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:p="http://www.springframework.org/schema/p"
 4     xmlns:context="http://www.springframework.org/schema/context"
 5     xsi:schemaLocation="
 6         http://www.springframework.org/schema/beans
 7         http://www.springframework.org/schema/beans/spring-beans.xsd
 8         http://www.springframework.org/schema/context
 9         http://www.springframework.org/schema/context/spring-context.xsd">
10     <bean id="user" class="com.liuyang.spring.User"></bean>
11
12
13
14 </beans>

5、创建测试类

 1 @SuppressWarnings({ "resource", "deprecation" })
 2 public class TestApplication {
 3
 4     // 通过工厂类创建IOC工程类对象
 5     @Test
 6     public void test1() {
 7         // 把对象创建交给IOC
 8         Resource resource = new ClassPathResource("com/liuyang/spring/applicationContext.xml");
 9         // 创建器对象
10         BeanFactory beanFactory = new XmlBeanFactory(resource);
11         // 的到容器对象 IOC=工厂类+ApplicationContext.xml
12         User user = (User) beanFactory.getBean("user");
13
14         System.out.println(user);
15     }
16
17     // 2.直接获取ApplicationContext.xml()方便
18     @Test
19     public void test2() {
20
21         ApplicationContext aContext = new ClassPathXmlApplicationContext(
22                 "com/liuyang/spring/applicationContext.xml");
23
24         // 的到容器对象 IOC=工厂类+ApplicationContext.xml
25         User user = (User) aContext.getBean("user");
26
27         System.out.println(user);
28     }
29
30     @Test
31     public void test3() {
32         /*
33          * (1)修改
34          * <bean id="user" class="com.liuyang.spring.User" scope="singleton"></bean>
35          * // scope="singleton"   加不加无影响,默认是单例模式
36          * (2)[service/dao/工具类]   只需创建一次 scope="prototype" 多例
37          * [action对象]选有多次创建对象时用         用到对象时创建        启动容器之前,整个应用只有一个
38          * (3)是否延迟创建
39          *        scope="singleton" 才有效
40          * (4)懒加载问题 lazy-init="false" 默认为false,
41          *    不延迟创建,
42          *        即在启动时候就创建对象 lazy-init="true" 延迟初始化, 在用到对象的时候才创建对象
43          *
44          *
45          * (5)  lazy-init="true"+scope="singleton"   ==    scope="prototype"
46          */
47         ApplicationContext aContext = new ClassPathXmlApplicationContext(
48                 "com/liuyang/spring/applicationContext.xml");
49         System.out.println("========创建容器========");
50         // 得到容器对象 IOC=工厂类+ApplicationContext.xml
51         User user1 = (User) aContext.getBean("user");
52         User user2 = (User) aContext.getBean("user");
53
54         System.out.println(user1);
55         System.out.println(user2);
56     }
57
58 }
时间: 2024-12-10 09:58:25

Spring框架总结(二)的相关文章

Spring框架(二)

Spring反射机制: 1, 通过spring来获取一个对象的实例 1 <bean id="user" class="com.model.User"> 2 3 </bean> 1 ApplicationContext ac=new ClassPathXmlApplicationContext("Spring-all.xml");//调用此方法时类已经实例化好了 2 User u=(User)ac.getBean("

使用Spring框架入门二:基于注解+XML配置的IOC/DI的使用

一.简述 本文主要讲使用注解+xml配合使用的几种使用方式.基础课程请看前一节. 二.步骤 1.为Pom.xml中引入依赖:本例中使用的是spring-context包,引入此包时系统会自动导入它的依赖包spring-beans\spring-core\spring-expression\spring-context. <?xml version="1.0" encoding="UTF-8"?> <project xmlns="http:

Spring框架(二) ---- bean的歧义性

自动装配bean时,如果符合条件的bean超过一个,就会出现歧义性,抛出NoUniqueBeanDefinitionException异常,有如下两种方法保证bean的唯一性: 一.使用@Primary注解标记首选bean 1.与@Component注解组合使用在自动扫描的bean上 2.与@Bean注解组合使用在java配置中 3.使用primary="true"属性在xml配置中的bean标签上 二.使用@Qualifier注解限定选择bean 1.与@Autowired注解组合使

Spring框架学习总结(上)

目录 1.Spring的概述 2.Spring的入门(IOC) 3.Spring的工厂类 4.Spring的配置 5.Spring的属性注入 6.Spring的分模块开发的配置 @ 1.Spring的概述 在学习SSM框架中,我建议初学者最好先学Spring框架,其次mybatis接着springMVC,先学mybatis当然也是可以的,今天我们就以绝对优雅的姿态闯进Spring世界,系好安全带,准备好了吗,出发了哦!!!咳咳....平时开发接触最多的估计就是IOC容器,它可以装载bean(所谓

Spring框架初识(二)

1. AOP的相关概念       1.1 AOP概述         1.1.1 什么是AOP             AOP:全程是Aspect Oriented Programming 即面向切面编程.是通过预编译方式和运行期动态代理实现程序功能的统一维护的一种技术.AOP是OOP的延续,是软件开发中的一个热点,也是Spring框架中的一个重要内容,是函数式编程的一种衍生范型.利用AOP可以对业务逻辑的各个部分进行隔离,从而使得业务逻辑各部分之间的耦合度降低,提高程序的可重用性,同时提高了

spring框架学习(二)依赖注入

转自:http://blog.csdn.net/lishuangzhe7047/article/details/20740835 ———————————————————————————————————————————— spring框架为我们提供了三种注入方式,分别是set注入,构造方法注入,接口注入.接口注入不作要求,下面介绍前两种方式. 1,set注入 采用属性的set方法进行初始化,就成为set注入. 1)给普通字符类型赋值. [java] view plaincopyprint? pub

[Spring框架]Spring AOP基础入门总结二:Spring基于AspectJ的AOP的开发.

前言: 在上一篇中: [Spring框架]Spring AOP基础入门总结一. 中 我们已经知道了一个Spring AOP程序是如何开发的, 在这里呢我们将基于AspectJ来进行AOP 的总结和学习. 一, AspectJ的概述: AspectJ是一个面向切面的框架,它扩展了Java语言.AspectJ定义了AOP语法所以它有一个专门的编译器用来生成遵守Java字节编码规范的Class文件. Spring为了简化自身的AOP的开发,将AspectJ拿过来作为Spring自身一个AOP的开发.

跟着刚哥学习Spring框架--Spring容器(二)

Spring容器 启动Spring容器(实例化容器) -- IOC容器读取Bean配置创建Bean实例之前,必须对它进行实例化(加载启动),这样才可以从容器中获取Bean的实例并使用.  Bean是Spring管理的基本单位,任何的Java对象和组件都被当成Bean处理,容器还负责管理Bean与Bean之间的依赖关系.  两种类型的启动实现   1.BeanFactory:IOC容器的基本实现,是Spring框架的基础设施,面向Spring本身: -- Spring容器最基本的接口就是BeanF

Spring框架学习之IOC(二)

Spring框架学习之IOC(二) 接着昨天的内容,下面开始IOC基于注解装配相关的内容 在 classpath 中扫描组件 <context:component-scan> 特定组件包括: –@Component: 基本注解, 标识了一个受 Spring 管理的组件 –@Respository: 标识持久层组件 –@Service: 标识服务层(业务层)组件 –@Controller: 标识表现层组件 对于扫描到的组件, Spring 有默认的命名策略: 使用非限定类名, 第一个字母小写.