我的第一个spring程序
程序员文章站
2024-03-08 15:54:58
...
接下来是我的第一个spring程序,使用了注解的方式来装载和注入bean。
1目录结构
Role代表数据,OpRole代表操作数据的服务,App为测试类,ApplicationConfig.xml为spring的配置文件
2、pom.xml
首先添加对spring核心包的依赖。
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.luo.my</groupId>
<artifactId>spring1</artifactId>
<version>0.0.1-SNAPSHOT</version>
<packaging>jar</packaging>
<name>spring1</name>
<url>http://maven.apache.org</url>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>3.8.1</version>
<scope>test</scope>
</dependency>
<!-- https://mvnrepository.com/artifact/org.springframework/spring-core -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-core</artifactId>
<version>5.0.8.RELEASE</version>
</dependency>
<!-- https://mvnrepository.com/artifact/org.springframework/spring-beans -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-beans</artifactId>
<version>5.0.8.RELEASE</version>
</dependency>
<!-- https://mvnrepository.com/artifact/org.springframework/spring-context -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId>
<version>5.0.8.RELEASE</version>
</dependency>
</dependencies>
</project>
3、ApplicationConfig.xml
spring的配置很简单,就是指明那个包含有被注解的类,然后这个类将被装载到容器中
<?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:context="http://www.springframework.org/schema/context"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context.xsd">
<!-- 设定Spring 去哪些包中找Annotation -->
<context:component-scan base-package="com.luo.my"/>
</beans>
设置了包的搜索路径,spring将从该包及其子包中装载bean
4、创建Role.java文件
package com.luo.my.dao;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Repository;
@Repository
public class Role {
@Value("luo")
String name;
@Value("21")
int age;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
}
该对象代表数据的访问,由于这个只是入门例子,所以假设数据获取很是简单。被@Repository注解的类将被装载到容器中,被@Value注解的属性在类实例化后会被输入括号里的值。
5、创建OpRole.java文件
该类代表操作Role数据的服务,只有简单的一个函数
package com.luo.my.service;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.luo.my.dao.Role;
@Service
public class OpRole {
@Autowired
Role role;
public void showRole() {
System.out.println("Name:"+role.getName()+"\tAge:"+role.getAge());
}
}
@Service、@Controller、@Repository与@Component没有本质差别,都是装载该类的意思,但是前面三个含有一定的语义信息。@Service表示服务层对象的装载。
6、创建App.java文件
该类用于测试是否能够正常运行
package com.luo.my.spring1;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
import com.luo.my.service.OpRole;
/**
* Hello world!
*
*/
public class App
{
public static void main( String[] args )
{
ApplicationContext applicationContext=new ClassPathXmlApplicationContext("ApplicationConfig.xml");
OpRole opRole=applicationContext.getBean(OpRole.class);
opRole.showRole();
}
}
7、打印结果
可以看到,能够正常输出结果,因此本程序测试成功。
8、小结
Spring是一个容器,能够将程序中需要的主干对象装载到容器中,实现代码中解耦合的作用,使程序易于测试和理解。
上一篇: PHP操作数据库
下一篇: mysql---创建和查询数据库表(4)