今天开始完成一个商品管理系统,每周的时间是越来越紧了,如果各位网友有bug或问题提交可以前往以下地址提交
提交问题 https://www.bugkong.com/dwqa-ask-question
或者后续我开通论坛功能也可以
今天开始的这个商品管理系统,就想尝试用java的Swing与spring结合试一下,经过一天的努力,也差不多算是完成了
下面我们说说步骤吧:
第一:创建一个maven项目,其中pom.xml代码如下:
<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.0818wyyls</groupId>
<artifactId>shopmanager</artifactId>
<version>0.0.1-SNAPSHOT</version>
<packaging>jar</packaging>
<name>shopmanager</name>
<url>http://maven.apache.org</url>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<springmvc.version>4.1.6.RELEASE</springmvc.version>
</properties>
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>3.8.1</version>
<scope>test</scope>
</dependency>
<!-- SpringMVC4.1.6 -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-orm</artifactId>
<version>${springmvc.version}</version>
<exclusions>
<exclusion>
<artifactId>commons-logging</artifactId>
<groupId>commons-logging</groupId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-web</artifactId>
<version>${springmvc.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context-support</artifactId>
<version>${springmvc.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-webmvc-portlet</artifactId>
<version>${springmvc.version}</version>
</dependency>
<dependency>
<groupId>commons-logging</groupId>
<artifactId>commons-logging</artifactId>
<version>1.2</version>
</dependency>
</dependencies>
</project>
其中的commons-loggings包也是必须要配置的哦
第二:创建配置文件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" xmlns:mvc="http://www.springframework.org/schema/mvc" xmlns:p="http://www.springframework.org/schema/p" xmlns:context="http://www.springframework.org/schema/context" xmlns:aop="http://www.springframework.org/schema/aop" xmlns:tx="http://www.springframework.org/schema/tx" xmlns:dwr="http://www.directwebremoting.org/schema/spring-dwr" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-4.1.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.1.xsd http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-4.1.xsd http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-4.1.xsd http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-4.1.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.1.xsd"> <!-- 自动扫描 --> <context:component-scan base-package="com.wyyls.shopmanager.JFarme.Impl" /> <!-- 声明使用注解的风格 --> <context:annotation-config /> </beans>以上代码,说明了我们需要扫描的包,以及开启注解功能
第三:创建一个工具类,获得一个Object对象
这一步主要是初始化applicationContext.xml这个文件
我们在web项目中,这个xml文件是由容器来处理的,然后我们这里的java图形界面是没有容器的,他的启动入口就是main函数
所以我们需要在main函数中进行初始化,也可以在工具类中进行初始化
请看以下我写的工具类
public class applicationbean {
private static ClassPathXmlApplicationContext context;
private static String path = "applicationContext.xml";
static{
context = new ClassPathXmlApplicationContext(path);
}
public static Object getObject(String beanName){
return context.getBean(beanName);
}
}
该工具类在启动时会自动运行静态代码快,然后在程序中就可以使用getObject来获得一个对象了
第四:书写一个由spring管理的类,请看以下代码头部实现
package com.wyyls.shopmanager.JFarme.Impl;
@Component("listeners")
public class ActionListeners implements IActionListeners{
//省略了方法
}
看到了吗,我们使用注解Component
然后我们再看看这个类所在的位置 package com.wyyls.shopmanager.JFarme.Impl;
这个位置是我们上面applicationContext.xml这个配置文件中配置的扫面包
那么就很好理解了,当程序启动的时候就会运行工具类中的静态代码快,静态代码快里就会初始化配置文件信息,配置文件里配置了使用注解,以及扫描那些包。
第五:使用方法,请看如下代码
只需要一行代码即可完成
IActionListeners ial = (IActionListeners)applicationbean.getObject("listeners");
第六:完整的入口程序代码就变成了这样
其他的代码已被封装
public class App {
public static void main(String[] args) {
//获得我们需要的对象
IActionListeners ial = (IActionListeners) applicationbean.getObject("listeners");
//加载布局
new Login();
//加载监听
ial.listener_login(common.center_button_login);
ial.listener_login(common.center_button_reult);
}
}
运行结果如下:
[caption id="attachment_1381" align="alignnone" width="396"]
Swing与spring整合[/caption]
对了,如果使用这样的方法类初始化一个参数似乎是不行的,后续我再继续测试下,看看有没有更好的方法
//以下代码目前是不正确的
@Resource("listeners")
private IActionListeners ial;
爆款云服务器s6 2核4G 低至0.46/天,具体规则查看活动详情