Spring 入门

一、首先导入核心jar包

commons-logging-1.1.3.jar                 日志
        spring-beans-4.2.4.RELEASE.jar           bean节点
        spring-context-4.2.4.RELEASE.jar        spring上下文节点
        spring-core-4.2.4.RELEASE.jar            spring核心功能
        spring-expression-4.2.4.RELEASE.jar   spring表达式相关表

二、核心配置文件

Spring配置文件:applicationContext.xml   一般都写这个文件名

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"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-4.2.xsd"> <!--IOC: inverse of Control 控制反转:把创建对象的权利给spring容器
class:指明需要创建对象的类名和包名
spring通过反射来创建对象,默认使用newInstance()来创建对象
所以需要类中必须定义空参构造方法
--> <bean name="userService" class="com.luo.ioc.UserServiceImpl"></bean> </beans>

创建一个对象类接口及实现它的类

package com.luo.ioc;

public interface UserService {

    void addUser();
} package com.luo.ioc; public class UserServiceImpl implements UserService { @Override
public void addUser() {
System.out.println("Spring ioc 控制反转我来啦");
}
}

测试类:

package com.luo.test;

import com.luo.ioc.UserService;
import com.luo.ioc.UserServiceImpl;
import org.junit.Test;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext; public class Test_ioc { @Test
public void test1(){
//测试ioc 控制反转
String path="applicationContext_ioc.xml";
ApplicationContext applicationContext = new ClassPathXmlApplicationContext(path);
UserService userService = (UserService) applicationContext.getBean("userService");
userService.addUser();
}
}

Spring中的API:

        applicationContext:在加载spring配置文件时候创建对象

        ClassPathXmlApplicationContext:加载classPath下的spring配置文件(正常人都用这个)

        FileSystemXmlApplicationContext:根据文件的路径加载,不要求必须在项目的src下

        BeanFactory:在加载配置文件的时候不创建对象  (基本不用了)

 

测试类:

测试 ClassPathXmlApplicationContext  和FileSystemXmlApplicationContext

@Test
public void test1(){
//测试ioc 控制反转
String path="applicationContext_ioc.xml";
ApplicationContext applicationContext = new ClassPathXmlApplicationContext(path);
UserService userService = (UserService) applicationContext.getBean("userService");
userService.addUser();
} @Test
public void test2()
{ //C:\Users\qq\IdeaProjects\bean0.xml //spring的配置文件没有放在类路径下
ApplicationContext context=new FileSystemXmlApplicationContext("bean0.xml"); UserService userService=(UserService) context.getBean("userId"); userService.addUser();
} 测试BeanFactory
@Test
public void test1(){
BeanFactory factory = new XmlBeanFactory(new ClassPathResource("applicationContext_api.xml"));
UserService userService =(UserService) factory.getBean("userService");
userService.addUser();
}

用到的接口和类的代码如下:就写个依赖注入的  其他的都一样的   就不写了

//Dao层接口

package com.luo.di;

public interface UserDao {

    void  addUser();
} //Dao层实现类 package com.luo.di; public class UserDaoImpl implements UserDao{
@Override
public void addUser() {
System.out.println("spring di 依赖注入 我来啦");
}
} //Service接口
package com.luo.di; public interface UserService { void addUser();
} //ServiceImpl接口实现Service接口 package com.luo.di; public class UserServiceImpl implements UserService { //需要UserDao
private UserDao userDao; public UserDao getUserDao() {
return userDao;
} public void setUserDao(UserDao userDao) {
this.userDao = userDao;
} @Override
public void addUser() { userDao.addUser();
}
}

依赖注入的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"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-4.2.xsd"> <!--依赖注入--> <bean name="udImpl" class="com.luo.di.UserDaoImpl"></bean>
<bean name="usImpl" class="com.luo.di.UserServiceImpl">
<property name="userDao" ref="udImpl"></property>
</bean>
</beans>

ref  : 引用

Spring-----入门的更多相关文章

  1. Spring入门学习(一)

    SpringMVC基础平台补充(2016.03.03) 如果想要开发SpringMVC,那么前期依次安装好:JDK(jdk-8u74-windows-x64,安装后配置环境变量JAVA_HOME和CL ...

  2. Spring入门(10)-Spring JDBC

    Spring入门(10)-Spring JDBC 0. 目录 JdbcTemplate介绍 JdbcTemplate常见方法 代码示例 参考资料 1. JdbcTemplate介绍 JdbcTempl ...

  3. Spring入门(9)-AOP初探

    Spring入门(9)-AOP初探 0. 目录 什么是面向切面编程 AOP常见术语 AOP实例 参考资料 1. 什么是面向切面编程 Aspect Oriented Programming(AOP),即 ...

  4. Spring入门(8)-基于Java配置而不是XML

    Spring入门(8)-基于Java配置而不是XML 本文介绍如何应用Java配置而不是通过XML配置Spring. 0. 目录 声明一个简单Bean 声明一个复杂Bean 1. 声明一个简单Bean ...

  5. Spring入门(7)-自动检测Bean

    Spring入门(7)-自动检测Bean 本文介绍如何自动检测Bean. 0. 目录 使用component-scan自动扫描 为自动检测标注Bean 1. 使用component-scan自动扫描 ...

  6. Spring入门(6)-使用注解装配

    Spring入门(6)-使用注解装配 本文介绍如何使用注解装配. 0. 目录 使用Autowired 可选的自动装配 使用Qualifier选择 1. 使用Autowired package com. ...

  7. Spring入门(5)-自动装配Bean属性

    Spring入门(5)-自动装配Bean属性 本文介绍如何装配Bean属性. 0. 目录 ByName ByType constructor 默认自动装配 混合使用自动装配和显示装配 1. ByNam ...

  8. Spring入门(4)-注入Bean属性

    Spring入门(4)-注入Bean属性 本文介绍如何注入Bean属性,包括简单属性.引用.内部Bean.注入集合等. 0. 目录 注入简单值 注入引用 注入内部Bean 装配集合 装配空值 使用命名 ...

  9. Spring入门(3)-Spring命名空间与Bean作用域

    Spring入门(3)-Spring命名空间与Bean作用域 这篇文章主要介绍Spring的命名空间和Bean作用域 0. 目录 Spring命名空间 Bean作用域 1. Spring命名空间 在前 ...

  10. Spring入门(2)-通过构造器注入Bean

    Spring入门(2)-通过构造器注入Bean 前一篇文章将了最基本的spring例子,这篇文章中,介绍一下带有参数的构造函数和通过构造器注入对象引用. 0. 目录 带有参数的构造函数 通过构造器注入 ...

随机推荐

  1. Oracle的问题的解决

    关于数据库的数据的导入导出       1.建数据库 修改密码的有效天数为无限期.       2.建表空间       3.建用户 导数据之前要建用户 要登进去试试 如themis_yw themi ...

  2. Echarts 柱状图配置详解

    1.基本柱状图 // 指定图表的配置项和数据 var option = { // ---- 标题 ----- title: { text: '主标题', textStyle: { color: 're ...

  3. 996.ICU与死亡因素

    昨天,我为996.ICU这场国际运动贡献了一颗星. 关于这件事,第一想到的就是我们工作的初心是为了更好的生活,工作扼杀生活的不良风气应该坚决抵制. 查了一下,近些年人类正常死亡原因中排名前三的原因为: ...

  4. iperf 测试工具

    Iperf是一个网络性能测试工具.Iperf可以测试TCP和UDP带宽质量.Iperf可以测量最大TCP带宽,具有多种参数和UDP特性. Iperf可以报告带宽,延迟抖动和数据包丢失.利用Iperf这 ...

  5. excel VBA动态链接数据库

    最近车间制造部有需求,需要通过excel填写的ID获取数据库中的某个取值.研究了一下VBA,简要记录一下代码,仅供参考. Function GETPMAX(SID As String) As Stri ...

  6. chrome浏览器导出文件提示病毒扫描失败

    转自https://zhidao.baidu.com/question/758059392558639324.html 1.windows+R,打开运行 2.输入regedit.exe,确定,打开注册 ...

  7. 每天一套题打卡|河南省第十届ACM/ICPC

    A.谍报分析 题意:请你编程,快速统计出频率高的前十个单词. 思路:字符串输入,map哈希表map<string,int >记录每个单词出现的次数,pair重载优先级 #include&l ...

  8. [ZOJ 4020] Traffic Light

    题目链接:http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=4020 很简单的一个bfs题,是我想多了. 顺便学习一下C++的S ...

  9. python数据库多字段插入

    # -*- co;ding: utf-8 -*-#企业详细信息写入数据库+征信得分import pymysqlfrom impala.dbapi import connect conn = pymys ...

  10. Java 处理word文档后在前端展示

    最新新开发的这个项目需要使用word文档并要求能在前端页面上带格式展示,由于项目不是内部使用,所以不考虑插件类的处理模式,都必须要本地处理完成,前端不需要做什么更新或者说安装就能直接访问,类似于百度文 ...