1:创建maven项目
2:打开创建好了的项目在pom.xml中添加spring的依赖
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.10</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-core</artifactId>
<version>4.2.4.RELEASE</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId>
<version>4.2.4.RELEASE</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-beans</artifactId>
<version>4.2.4.RELEASE</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-expression</artifactId>
<version>4.2.4.RELEASE</version>
</dependency>
<dependency>
<groupId>commons-logging</groupId>
<artifactId>commons-logging</artifactId>
<version>1.2</version>
</dependency>
<dependency>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
<version>1.2.17</version>
</dependency>
更新maven项目, 更新完后,可以查看到maven的依赖库下已经自动的引进了一些包。
新建cn.dss.springDemo包创建如下的几个java文件
package cn.dss.springDemo;
public interface UserService {
public void sayHello();
}
package cn.dss.springDemo;
public class UserServiceImpl implements UserService {
private String name;
@Override
public void sayHello() {
// TODO Auto-generated method stub
System.out.println("name"+name);
}
// 设置set方法。
public void setName(String name) {
this.name=name;
}
}
在这里插入代码片
在src/main/resource中创建一个applicationContext.xml 文件
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:p="http://www.springframework.org/schema/p" 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.xsd">
<!-- UserService的创建权交给了Spring -->
<!-- ctrl + shift + / ===>注释 -->
<!-- ctrl + shift + \ ===>取消注释 -->
<!--bean的id必须是唯一的id ,class路径写正确 -->
<bean id="userService" class="cn.dss.springDemo.UserServiceImpl">
<!--bean中属性进行传值 -->
<property name="name" value="李四" />
</bean>
</beans>
开始了test
package cn.dss.springDemo;
import org.junit.Test;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
public class SpringDemo {
/**
* 传统的开发方式
*/
@Test // ctrl + shift + o 快速进行导包
public void demo1() {
// 传统的方式是自己去创建对象,
UserServiceImpl userServiceImpl = new UserServiceImpl();
userServiceImpl.setName("dss");
userServiceImpl.sayHello();
}
/**
* 使用spring的方式
*/
@Test
public void demo2() {
// 创建spring的工厂
ApplicationContext applicationContext = new ClassPathXmlApplicationContext("applicationContext.xml");
// 通过getBean的方法获取对象
UserServiceImpl user = (UserServiceImpl) applicationContext.getBean("userService");
user.sayHello();
}
}
第二个方法可能会报一个警告
我们在src/main/resource下添加一个文件log4j.properties
### direct log messages to stdout ###
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.Target=System.err
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%d{ABSOLUTE} %5p %c{1}:%L - %m%n
### direct messages to file mylog.log ###
log4j.appender.file=org.apache.log4j.FileAppender
log4j.appender.file.File=c\:mylog.log
log4j.appender.file.layout=org.apache.log4j.PatternLayout
log4j.appender.file.layout.ConversionPattern=%d{ABSOLUTE} %5p %c{1}:%L - %m%n
### set log levels - for more verbose logging change 'info' to 'debug' ###
log4j.rootLogger=info, stdout
在次运行第二个test就没有警告了。
使用spring,相当于把创建对象的权利交给了spring工厂,通过工厂来获取bean。