Merge remote-tracking branch 'origin/main'

# Conflicts:
#	.idea/git_toolbox_blame.xml
#	out/production/grademanagement-SpringProject/com/ssm/first/TestFirst.class
布鲁特 2 weeks ago
commit 16c180c494

@ -1,11 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="GitToolBoxBlameSettings">
<option name="showEditorInlineBlameOverride">
<BoolValueOverride>
<option name="enabled" value="true" />
</BoolValueOverride>
</option>
<option name="version" value="2" />
</component>
</project>

@ -0,0 +1,15 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="GitToolBoxProjectSettings">
<option name="commitMessageIssueKeyValidationOverride">
<BoolValueOverride>
<option name="enabled" value="true" />
</BoolValueOverride>
</option>
<option name="commitMessageValidationEnabledOverride">
<BoolValueOverride>
<option name="enabled" value="true" />
</BoolValueOverride>
</option>
</component>
</project>

@ -0,0 +1,53 @@
<?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.xsd">
<!-- 学生管理模块Student实体类Bean -->
<bean id="student" class="com.ssm.ioc.Student">
<property name="studentId" value="20260408"/>
<property name="studentName" value="张三"/>
<property name="className" value="计算机25-2班"/>
<property name="major" value="计算机科学与技术"/>
<property name="age" value="18"/>
<property name="phone" value="13800138000"/>
</bean>
<!-- 公告栏实体Bean -->
<!-- 公告栏实体Bean - 通过setter方法注入 -->
<bean id="announcement1" class="com.ssm.ioc.Announcement">
<property name="id" value="1001"/>
<property name="title" value="系统维护通知"/>
<property name="content" value="系统将于今晚22:00至23:00进行例行维护期间暂停服务请提前做好工作安排。"/>
<property name="publisher" value="管理员"/>
<property name="publishTime" value="2026-04-10 09:00:00"/>
<property name="status" value="1"/>
<property name="type" value="2"/> <!-- 2:重要 -->
<property name="expireDate" value="2026-04-20 23:59:59"/>
<property name="readCount" value="256"/>
</bean>
<!-- 公告栏实体Bean - 通过构造器注入 -->
<bean id="announcement2" class="com.ssm.ioc.Announcement">
<constructor-arg name="id" value="1002"/>
<constructor-arg name="title" value="五一劳动节放假安排"/>
<constructor-arg name="content" value="根据国家法定节假日安排公司将于5月1日至5月5日放假5月6日正常上班。"/>
<constructor-arg name="publisher" value="教务处"/>
<constructor-arg name="publishTime" value="2026-04-25 10:30:00"/>
<constructor-arg name="status" value="1"/>
<constructor-arg name="type" value="1"/> <!-- 1:通知 -->
<constructor-arg name="expireDate" value="2026-05-06 00:00:00"/>
<constructor-arg name="readCount" value="1024"/>
</bean>
<!-- 公告栏实体Bean - 紧急通知 -->
<bean id="announcement3" class="com.ssm.ioc.Announcement">
<property name="id" value="1003"/>
<property name="title" value="服务器紧急维护通知"/>
<property name="content" value="由于系统异常服务器将于今日下午14:00-15:00紧急维护请及时保存工作数据。"/>
<property name="publisher" value="技术部"/>
<property name="publishTime" value="2026-04-10 13:30:00"/>
<property name="status" value="1"/>
<property name="type" value="5"/> <!-- 5:紧急 -->
<property name="expireDate" value="2026-04-10 17:00:00"/>
<property name="readCount" value="512"/>
</bean>
</beans>

@ -10,5 +10,6 @@ public static void main(String[] args) {
System.out.println("Hello Sping!");
System.out.println("Hello Sping!");
System.out.println("Hello Sping!");
}
}

@ -0,0 +1,154 @@
package com.ssm.ioc;
/**
*
*
*/
public class Announcement {
// 公告ID
private Integer id;
// 公告标题
private String title;
// 公告内容
private String content;
// 发布人
private String publisher;
// 发布时间改为String类型避免转换问题
private String publishTime;
// 公告状态0:草稿 1:已发布 2:已下架)
private Integer status;
// 公告类型1:通知 2:重要 3:活动 4:系统 5:紧急)
private Integer type;
// 截止日期改为String类型
private String expireDate;
// 阅读次数
private Integer readCount;
// 无参构造
public Announcement() {}
// 有参构造
public Announcement(Integer id, String title, String content, String publisher,
String publishTime, Integer status, Integer type,
String expireDate, Integer readCount) {
this.id = id;
this.title = title;
this.content = content;
this.publisher = publisher;
this.publishTime = publishTime;
this.status = status;
this.type = type;
this.expireDate = expireDate;
this.readCount = readCount;
}
// Getter & Setter 方法
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public String getTitle() {
return title;
}
public void setTitle(String title) {
this.title = title;
}
public String getContent() {
return content;
}
public void setContent(String content) {
this.content = content;
}
public String getPublisher() {
return publisher;
}
public void setPublisher(String publisher) {
this.publisher = publisher;
}
public String getPublishTime() {
return publishTime;
}
public void setPublishTime(String publishTime) {
this.publishTime = publishTime;
}
public Integer getStatus() {
return status;
}
public void setStatus(Integer status) {
this.status = status;
}
public Integer getType() {
return type;
}
public void setType(Integer type) {
this.type = type;
}
public String getExpireDate() {
return expireDate;
}
public void setExpireDate(String expireDate) {
this.expireDate = expireDate;
}
public Integer getReadCount() {
return readCount;
}
public void setReadCount(Integer readCount) {
this.readCount = readCount;
}
// 获取状态描述
public String getStatusDesc() {
switch (status) {
case 0: return "草稿";
case 1: return "已发布";
case 2: return "已下架";
default: return "未知";
}
}
// 获取类型描述
public String getTypeDesc() {
switch (type) {
case 1: return "通知";
case 2: return "重要";
case 3: return "活动";
case 4: return "系统";
case 5: return "紧急";
default: return "未知";
}
}
@Override
public String toString() {
return "Announcement{" +
"id=" + id +
", title='" + title + '\'' +
", content='" + content + '\'' +
", publisher='" + publisher + '\'' +
", publishTime='" + publishTime + '\'' +
", status=" + status + "(" + getStatusDesc() + ")" +
", type=" + type + "(" + getTypeDesc() + ")" +
", expireDate='" + expireDate + '\'' +
", readCount=" + readCount +
'}';
}
}

@ -0,0 +1,77 @@
package com.ssm.ioc;
public class Student {
// 学生核心属性
private Integer studentId; // 学生ID学号
private String studentName; // 学生姓名
private String className; // 所属班级
private String major; // 所学专业
private Integer age; // 年龄
private String phone; // 联系电话
// 无参构造方法Spring IoC创建Bean的前提
public Student() {
}
// get方法Spring依赖注入赋值用
public Integer getStudentId() {
return studentId;
}
public void setStudentId(Integer studentId) {
this.studentId = studentId;
}
public String getStudentName() {
return studentName;
}
public void setStudentName(String studentName) {
this.studentName = studentName;
}
public String getClassName() {
return className;
}
public void setClassName(String className) {
this.className = className;
}
public String getMajor() {
return major;
}
public void setMajor(String major) {
this.major = major;
}
public Integer getAge() {
return age;
}
public void setAge(Integer age) {
this.age = age;
}
public String getPhone() {
return phone;
}
public void setPhone(String phone) {
this.phone = phone;
}
// toString方法
@Override
public String toString() {
return "Student{" +
"studentId=" + studentId +
", studentName='" + studentName + '\'' +
", className='" + className + '\'' +
", major='" + major + '\'' +
", age=" + age +
", phone='" + phone + '\'' +
'}';
}
}

@ -0,0 +1,55 @@
package com.ssm.ioc;
import com.sun.javafx.fxml.BeanAdapter;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
public class TestIoc {
public static void main(String[] args) {
ApplicationContext ac = new ClassPathXmlApplicationContext("bean-ioc.xml");
// 学生管理模块测试代码
Student student = ac.getBean("student", Student.class);
System.out.println("学生信息:" + student);
System.out.println("======= 公告栏管理模块 =======\n");
Announcement announcement1 = (Announcement) ac.getBean("announcement1");
System.out.println("announcement1: " + announcement1);
System.out.println("公告ID: " + announcement1.getId());
System.out.println("公告标题: " + announcement1.getTitle());
System.out.println("发布人: " + announcement1.getPublisher());
System.out.println("发布时间: " + announcement1.getPublishTime());
System.out.println("公告状态: " + announcement1.getStatusDesc());
System.out.println("公告类型: " + announcement1.getTypeDesc());
System.out.println("阅读次数: " + announcement1.getReadCount());
System.out.println("------------------------");
Announcement announcement2 = (Announcement) ac.getBean("announcement2");
System.out.println("announcement2: " + announcement2);
System.out.println("公告ID: " + announcement2.getId());
System.out.println("公告标题: " + announcement2.getTitle());
System.out.println("发布人: " + announcement2.getPublisher());
System.out.println("发布时间: " + announcement2.getPublishTime());
System.out.println("公告状态: " + announcement2.getStatusDesc());
System.out.println("公告类型: " + announcement2.getTypeDesc());
System.out.println("截止日期: " + announcement2.getExpireDate());
System.out.println("阅读次数: " + announcement2.getReadCount());
System.out.println("------------------------");
Announcement announcement3 = (Announcement) ac.getBean("announcement3");
System.out.println("announcement3: " + announcement3);
System.out.println("公告ID: " + announcement3.getId());
System.out.println("公告标题: " + announcement3.getTitle());
System.out.println("发布人: " + announcement3.getPublisher());
System.out.println("发布时间: " + announcement3.getPublishTime());
System.out.println("公告状态: " + announcement3.getStatusDesc());
System.out.println("公告类型: " + announcement3.getTypeDesc());
System.out.println("截止日期: " + announcement3.getExpireDate());
System.out.println("阅读次数: " + announcement3.getReadCount());
// 3. 演示不同配置方式的效果
System.out.println("\n======= 配置方式对比 =======");
System.out.println("announcement1 通过 setter 方法注入");
System.out.println("announcement2 通过构造器注入");
System.out.println("announcement3 通过 setter 方法注入");
}
}
Loading…
Cancel
Save