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. redis的数据持久化策略

    redis提供了两种不同的持久化方法来将数据存储到硬盘里面.一种方法叫快照,它可以将存在于某一时刻的所有数据都写入硬盘里面.另一种方法叫只追加文件(AOF),它会在执行写命令时,将被执行的写命令复制到 ...

  2. selenium span[contains]中使用变量

    province = '湖南' driver.find_element_by_xpath('//span[contains(text(),"'+province+'").click ...

  3. POI中excle样式怎么写

    POI中可能会用到一些需要设置EXCEL单元格格式的操作小结: 先获取工作薄对象: HSSFWorkbook wb = new HSSFWorkbook(); HSSFSheet sheet = wb ...

  4. Pycharm 的设置--参数设置(运行.py文件带参数,例如argument)

    程序运行时,如果需要输入参数,如下图中程序代码: 在生成exe后,程序在控制台下运行时格式为: 这种情况在调试程序时,如果只是在Pycharm环境中简单执行“Run”菜单下的“Run”命令,会出现以下 ...

  5. Bigger-Mai 养成计划,Python基础巩固三

    1.集合的基本操作(set)集合是一个无序的,不重复的元素集合,他的主要作用是去重:把一个列表变为集合就自动去重了.关系测试:测试两组数据之间的交集,差集,并集等关系 list_1 = [1,4,6, ...

  6. Cordova 笔记

    npm instal -g cordova 安装 卸载cordova npm unistall cordova -g 安装指定版本 npm install -g cordova@ 1.创建应用项目及目 ...

  7. c#操作json的两种方式

    总结一下C#操作json的两种方式,都是将对象和json格式相转. 1.JavaScriptSerializer,继承自System.Web.Script.Serialization private ...

  8. Pandorabox(Openwrt) 双宽带(WAN) 叠加网络实战

    准备 一台已经刷好Pandorabox(Openwrt)的路由器.两条宽带 实战环境 固件:PandoraBox R8.1.12 By Lean 硬件:K2P A1版 过程 配置VLAN 为了将一个L ...

  9. 2018.11.30开始学习shader

    学习资料: 乐乐女神的<unity Shader入门精要>

  10. Hadoop入门

    一.Hadoop是什么 1)Hadoop是一个由Apache基金会所开发的分布式系统基础架构. 2)Hadoop主要解决,海量数据的存储和海量数据的分析计算问题. 3)广义上来说,Hadoop通常是指 ...