Java后端开发——Spring实验

文章目录

  • Java后端开发——Spring实验
    • 一、Spring入门
      • 1.创建项目,Spring依赖包。
      • 2.创建JavaBean:HelloSpring
      • 3.编写applicationContext.xml配置文件
      • 4.测试:启动Spring,获取Hello示例。
    • 二、Spring基于XML装配实验
      • 1.创建JavaBean类:Account.java
      • 2.创建DAO类: AccountDao.java
      • 3.创建Service类:AccountService.java
      • 4.创建Controller类:AccountController.java
      • 5.编写applicationContext.xml配置文件
      • 6.创建TestAccount.java
    • 三、Spring基于注解装配实验
      • 1.导入依赖
      • 2.XML配置文件
      • 3.定义实体类
      • 4.定义dao层
      • 5.实现dao层
      • 6.定义service层
      • 7.实现service层
      • 8.定义controller层
      • 9.定义测试类
      • 10.查看运行结果
    • 四、纯注解配置类
      • 1.创建注解配置类,取代XML配置文件
      • 2.通过注解@Autowired实现按类型自动注入
      • 3.定义测试注解配置类
    • 五、项目jar包

Java后端开发——Spring实验

一、Spring入门

Spring框架是一个开放源代码的J2EE应用程序框架,由Rod Johnson发起,是针对bean的生命周期进行管理的轻量级容器(lightweight container)。 Spring解决了开发者在J2EE开发中遇到的许多常见的问题,提供了功能强大IOC、AOP及Web MVC等功能。Spring可以单独应用于构筑应用程序,也可以和Struts、Webwork、Tapestry等众多Web框架组合使用,并且可以与 Swing等桌面应用程序AP组合。因此, Spring不仅仅能应用于J2EE应用程序之中,也可以应用于桌面应用程序以及小应用程序之中。Spring框架主要由七部分组成,分别是 Spring Core、 Spring AOP、 Spring ORM、 Spring DAO、Spring Context、 Spring Web和 Spring Web MVC。

1.创建项目,Spring依赖包。

在这里插入图片描述

2.创建JavaBean:HelloSpring

package com.javaweb.bean;public class HelloSpring {private String userName;public void setUserName(String userName){this.userName=userName;	}public void show() { System.out.println(userName+":欢迎来到Spring");	}
}

在这里插入图片描述

3.编写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/beanshttp://www.springframework.org/schema/beans/spring-beans.xsd"><bean id="helloSpring" class="bean.HelloSpring"><property name="userName" value="张三"></property></bean>
</beans>

在这里插入图片描述

4.测试:启动Spring,获取Hello示例。

package com.javaweb.test;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;import com.javaweb.bean.HelloSpring;
public class TestHelloSpring {public static void main(String[] args) {// 初始化spring容器,加载applicationContext.xml配置ApplicationContext applicationContext = new ClassPathXmlApplicationContext("applicationContext.xml");// 通过容器获取配置中helloSpring的实例HelloSpring helloSpring = (HelloSpring) applicationContext.getBean("helloSpring");helloSpring.show();// 调用方法 }}
}

在这里插入图片描述

二、Spring基于XML装配实验

说明:使用Spring IOC模拟实现账户添加功能程序

1.创建JavaBean类:Account.java

package com.javaweb.bean;public class Account {private String name;
private String id;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
}

在这里插入图片描述

2.创建DAO类: AccountDao.java

模拟账户添加操作

package com.javaweb.dao;import com.javaweb.bean.Account;public class AccountDao {public void save(Account account) {
System.out.println("添加账户信息");
}
}

在这里插入图片描述

3.创建Service类:AccountService.java

模拟账户添加业务

package com.javaweb.service;import com.javaweb.bean.Account;
import com.javaweb.dao.AccountDao;public class AccountService {private AccountDao dao;public void setDao(AccountDao dao) {this.dao = dao;}public void save(Account account) {dao.save(account);	}}

在这里插入图片描述

4.创建Controller类:AccountController.java

在Web下模拟账户添加请求。

package com.javaweb.controller;import com.javaweb.bean.Account;
import com.javaweb.service.AccountService;public class AccountController {private AccountService service;public void setService(AccountService service) {this.service = service;}public void save() {Account account=new Account();account.setId("12343546465");account.setName("张三");service.save(account);}}

在这里插入图片描述

5.编写applicationContext.xml配置文件

Dao装配到Service,Service装配到Controller

<?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">
<bean id="helloSpring" class="com.javaweb.bean.HelloSpringE">
<property name="userName" value="张三"></property>
</bean>
<bean id="accountDao" class="com.javaweb.dao.AccountDao"></bean>
<bean id="accountService" class="com.javaweb.service.AccountService">
<property name="dao" ref="accountDao"></property>
</bean>
<bean id="accountController" class="com.javaweb..controller.AccountController">
<property name="service" ref="accountService"></property>
</bean>
</beans>

在这里插入图片描述

6.创建TestAccount.java

在main()方法中加载XML配置文件,实现Spring容器的初始化,通过Spring容器获取Bean实例accountController完成save()方法调用。

package com.javaweb.test;import com.javaweb.controller.AccountController;public class TestAccount {public static void main(String[] args) {
AccountController c=new AccountController();
c.save();
}}

在这里插入图片描述

三、Spring基于注解装配实验

1.导入依赖

在项目中导入spring-aop.jar依赖包,它包含在应用中使用Spring的AOP特性时所需的类,注解实现需要依赖AOP才能实现。
在这里插入图片描述

2.XML配置文件

创建applicationContext.xml,在该文件中引入Context约束并启动Bean的自动扫描功能。

<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/c
http://www.springframework.org/schema/context/spring-context.xsd">
<context:component-scan base-package="com.javaweb" />
</beans>

在这里插入图片描述

3.定义实体类

新建entity包,在entity包下创建User实体类。

package com.javaweb.entity;import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.Scope;
import org.springframework.stereotype.Component;@Component("user")
@Scope("singleton")
public class User {
@Value("1")
private int id;
@Value("张三")
private String name;
@Value("123")
private String password;
// 省略getter/setter方法和toString()方法
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
}

在这里插入图片描述

4.定义dao层

创建UserDao接口作为数据访问层接口,并在UserDao接口中声明save()方法,用于查询User实体的对象信息。

package com.javaweb.dao;public interface UserDao {
public void save();
}

在这里插入图片描述

5.实现dao层

创建UserDaoImpl作为UserDao的实现类,并在UserDaoImpl类中实现UserDao接口中的save()方法。

package com.javaweb.dao;import javax.annotation.Resource;import org.springframework.stereotype.Repository;import com.javaweb.entity.User;@Repository("userDao")
public class UserDaoImpl implements UserDao {
@Resource(name="user")
private User user;
public void save(){
System.out.println(user);
System.out.println("执行UserDaoImpl.save()");
}
}

在这里插入图片描述

6.定义service层

创建UserService接口作为业务逻辑层接口,并在UserService接口中定义save()方法。

package com.javaweb.service;public interface UserService {
public void save();
}

在这里插入图片描述

7.实现service层

创建UserServiceImpl作为UserService的实现类,并在UserServiceImpl类中实现UserService接口中的save()方法。

package com.javaweb.service;import javax.annotation.Resource;import org.springframework.stereotype.Service;import com.javaweb.dao.UserDao;@Service("userService")
public class UserServiceImpl implements UserService {
//使用@Resource注解注入UserDao
@Resource(name="userDao")
private UserDao userDao;
public void save(){
this.userDao.save();
System.out.println("执行UserServiceImpl.save()");
}
}

在这里插入图片描述

8.定义controller层

创建UserController类作为控制层。

package com.javaweb.controller;import javax.annotation.Resource;import org.springframework.stereotype.Controller;import com.javaweb.service.UserService;@Controller("userController")
public class UserController {
//使用@Resource注解注入UserService
@Resource(name="userService")
private UserService userService;
public void save(){
this.userService.save();
System.out.println("执行UserController.save()");
}
}

在这里插入图片描述

9.定义测试类

创建测试类AnnotationTest,在该类中编写测试代码,通过Spring容器加载配置文件并获取UserController实例,然后调用实例中的save()方法。

package com.javaweb.test;import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;import com.javaweb.controller.UserController;public class AnnotationTest {
public static void main(String[] args){
ApplicationContext applicationContext=new 
ClassPathXmlApplicationContext("applicationContext.xml");
UserController usercontroller=(UserController) 
applicationContext.getBean("userController");
usercontroller.save();
}
}

在这里插入图片描述

10.查看运行结果

启动AnnotationTest类,控制台会输出结果。
在这里插入图片描述

四、纯注解配置类

1.创建注解配置类,取代XML配置文件

package com.javaweb.config;import org.springframework.context.annotation.ComponentScan;
import org.springframework.context.annotation.Configuration;@Configuration
@ComponentScan("com.javaweb")
public class SpringConfig {
}

在这里插入图片描述

2.通过注解@Autowired实现按类型自动注入

Spring的元素中包含一个autowire属性,可以通过设置autowire属性的值实现Bean的自动装配。
在这里插入图片描述

3.定义测试注解配置类

创建测试类AnnotationTest,在该类中编写测试代码,通过Spring容器加载配置文件并获取UserController实例,然后调用实例中的save()方法。

package com.javaweb.test;import org.springframework.context.ApplicationContext;
import org.springframework.context.annotation.AnnotationConfigApplicationContext;import com.javaweb.config.SpringConfig;
import com.javaweb.controller.UserController;public class AnnotationTest2 {
public static void main(String[] args) {
ApplicationContext applicationContext = new
AnnotationConfigApplicationContext(SpringConfig.class);
UserController usercontroller=applicationContext.getBean(UserController.class);
usercontroller.save();
}

在这里插入图片描述

五、项目jar包

本项目所需要的Spring包已上传到主页——资源处,需要可自行下载。
在这里插入图片描述

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/318524.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Stata各版本安装指南

Stata下载链接 https://pan.baidu.com/s/1ECc2mPsfNOUUwOQC9hCcYg?pwd0531 1.鼠标右击【Stata18(64bit)】压缩包&#xff08;win11及以上系统需先点击“显示更多选项”&#xff09;【解压到 Stata18(64bit)】。 2.打开解压后的文件夹&#xff0c;鼠标右击【Setup】选择【以管…

视频如何去掉logo水印?这个几个方法记得收藏好!

在当今这个数字媒体的时代&#xff0c;视频已经渗透到我们生活的每一个角落&#xff0c;宛如一道亮丽的风景线&#xff0c;丰富着我们的生活色彩。然而&#xff0c;有些时候&#xff0c;这些视频上的logo水印&#xff0c;却像一片乌云&#xff0c;遮挡住了那原本明媚的阳光&…

印象笔记03 衍生软件使用

印象笔记03 衍生软件使用 Verse 以下内容来源于官方介绍 VERSE是一款面向未来的智能化生产力工具&#xff0c;由印象笔记团队诚意推出。 你可以用VERSE&#xff1a; 管理数字内容&#xff0c;让信息有序高效运转&#xff1b;搭建知识体系&#xff0c;构建你的强大知识库&am…

Conda:Python环境管理的瑞士军刀

在数据科学和机器学习的世界中&#xff0c;管理各种库和依赖关系的重要性不容忽视。Conda 就是为此而生的强大工具。本文将深入探讨 Conda 的简介、功能以及使用示例&#xff0c;帮助你更好地理解和使用这个工具。 Conda 简介 Conda 是一个开源的包管理系统和环境管理系统&am…

【Unity】 HTFramework框架(四十七)编辑器日志中使用超链接的技巧

更新日期&#xff1a;2024年1月3日。 Github源码&#xff1a;[点我获取源码] Gitee源码&#xff1a;[点我获取源码] 索引 日志中使用超链接超链接-网络地址超链接-本地地址超链接-项目资源文件超链接-脚本对象 日志中使用超链接 在编辑器控制台Console中的日志是支持富文本的&…

软件测试之白盒测试

概念与定义 白盒测试&#xff1a;侧重于系统或部件内部机制的测试&#xff0c;类型分为分支测试&#xff08;判定节点测试&#xff09;、路径测试、语句测试。 控制流分析(基于程序结构)&#xff1a;控制流分析是一类用于分析程序控制流结构的静态分析技术&#xff0c;目的在于…

LeetCode刷题---旋转图像

解题思路&#xff1a; 首先对主对角线两边的元素进行交换 接着走一轮遍历&#xff0c;将第1列和第n列进行交换&#xff0c;第2列和第n-1列进行交换&#xff0c;直至得到最终的矩阵。 代码实现&#xff1a; public void rotate(int[][] matrix) {//首先对主对角线的元素进行交换…

数字图像处理(3)——频域图像增强

&#x1f525;博客主页&#xff1a;是dream &#x1f680;系列专栏&#xff1a;深度学习环境搭建、环境配置问题解决、自然语言处理、语音信号处理、项目开发 &#x1f498;每日语录&#xff1a;贤才&#xff0c;难进易出&#xff1b;庸才&#xff0c;易进易初出&#xff1b;…

电子书推荐|VMware 替代与升级攻略:技术路线、产品对比与用户实践

在进行 VMware 国产化替代时&#xff0c;您是否会遇到以下问题&#xff1a; 如何实现 VMware 整体架构/部分组件替换&#xff1f;是否可以不仅“为替换而替换”&#xff0c;而是同时实现架构的升级&#xff0c;带来更多业务价值&#xff1f;哪些国产方案具备 VMware 同等能力&…

Transformer梳理与总结

其实transformer的成功也是源于对注意力机制的应用&#xff0c;其本质上还是可以归因于注意力机制&#xff0c;首先我们先来了解一下什么是注意力机制。在注意力机制的背景下&#xff0c;自主性提示被称为查询&#xff08;query&#xff09;,给定任何查询&#xff0c;注意力机制…

Java程序设计阶段测试1

一、单选题&#xff08;共15题&#xff1b; 共30.0分&#xff09; 2.0分 1、以下哪个是Java应用程序main方法的有效定义? A.public static void main(); B.public static void main( String args ); C.public static void main( String args[] ); D.public static boolea…

2023-12-26分割回文串和子集以及子集II

131. 分割回文串 思想&#xff1a;回溯三步骤&#xff01;① 传入参数 ② 回溯结束条件 ③ 单层搜索逻辑&#xff01;抽象成回溯树&#xff0c;树枝上是每次从头部穷举切分出的子串&#xff0c;节点上是待切分的剩余字符串【从头开始每次往后加一】 class Solution:def partiti…