嘉期如梦 2023-03-08 11:01 采纳率: 33.3%
浏览 54
已结题

Spring问题求解

spring问题求解:现有Product产品类,根据业务需求要对产品进行保存操作,为了遵循3层框架体系结构,设计了以下类

package com.po;

public class Product {
    private Integer id;
    private String name;
    private String subTitle;
    private float price;
    public Integer getId(){
        return id;
    }

    public String getName() {
        return name;
    }

    public String getSubTitle() {
        return subTitle;
    }

    public float getPrice() {
        return price;
    }

    /*** setter and getter ***/

    public void setId(Integer id){
        this.id = id;
    }

    public void setName(String name) {
        this.name = name;
    }

    public void setSubTitle(String subTitle) {
        this.subTitle = subTitle;
    }

    public void setPrice(float price) {
        this.price = price;
    }

    @Override
    public String toString() {
        return "product [id=" + id +", name=" + name +", subTitle=" + subTitle +",price=" + price +"]";
    }
}
package com.service;
import com.po.Product;
public interface ProductService {
    public void save(Product product);
}


package com.impl;
import com.po.Product;
import com.service.ProductService;
public class ProductServiceImpl implements ProductService{
    @Override
    public void save(Product product) {
        System.out.println(product);
    }
}



package com.controller;
import com.po.Product;
import com.service.ProductService;
public class ProductController {
    private ProductService productService;
    
    public void save(Product product){
        productService.save(product);
    }
}

1.要求基于XML完成对bean的装配,创建测试类,获取ProductContext的实例,调用其save()方法,在控制台上打印Product的信息。
2.要求基于注解(@Autowired)完成对bean的装配,创建测试类,获取ProductContext的实例,调用其save()方法,在控制台上打印Product的信息。

  • 写回答

2条回答 默认 最新

  • 程序yang 全栈领域优质创作者 2023-03-08 11:43
    关注

    参考:

    1.基于XML完成对bean的装配的代码实现:
    在resources目录下创建spring-config.xml文件,编写如下代码:

    <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">
        <!-- 定义Product对象 -->
        <bean id="product" class="com.po.Product">
            <property name="id" value="1"/>
            <property name="name" value="Product1"/>
            <property name="subTitle" value="SubTitle1"/>
            <property name="price" value="10.0"/>
        </bean>
    
        <!-- 定义ProductServiceImpl对象 -->
        <bean id="productService" class="com.impl.ProductServiceImpl"/>
    
        <!-- 定义ProductController对象 -->
        <bean id="productController" class="com.controller.ProductController">
            <!-- 将ProductServiceImpl注入到ProductController -->
            <property name="productService" ref="productService"/>
        </bean>
    </beans>
    
    • 编写测试类ProductTest.java,编写如下代码:
    import org.springframework.context.ApplicationContext;
    import org.springframework.context.support.ClassPathXmlApplicationContext;
    
    import com.controller.ProductController;
    import com.po.Product;
    
    public class ProductTest {
        public static void main(String[] args) {
            ApplicationContext context = new ClassPathXmlApplicationContext("spring-config.xml");
            ProductController productController = (ProductController) context.getBean("productController");
            Product product = (Product) context.getBean("product");
            productController.save(product);
        }
    }
    

    2.基于注解完成对bean的装配的代码实现:
    在ProductServiceImpl类上添加@Service注解,表示将该类作为一个服务类进行注入。

    在ProductController类中使用@Autowired注解注入ProductServiceImpl对象。

    修改ProductTest.java的代码,不需要再手动获取Product和ProductServiceImpl对象,Spring会自动完成注入。

    修改后的代码如下:

    import org.springframework.context.ApplicationContext;
    import org.springframework.context.annotation.AnnotationConfigApplicationContext;
    
    import com.controller.ProductController;
    import com.po.Product;
    
    public class ProductTest {
        public static void main(String[] args) {
            ApplicationContext context = new AnnotationConfigApplicationContext("com.impl");
            ProductController productController = context.getBean(ProductController.class);
            Product product = new Product();
            product.setId(2);
            product.setName("Product2");
            product.setSubTitle("SubTitle2");
            product.setPrice(20.0f);
            productController.save(product);
        }
    }
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 4月26日
  • 已采纳回答 4月18日
  • 创建了问题 3月8日

悬赏问题

  • ¥15 一个服务器已经有一个系统了如果用usb再装一个系统,原来的系统会被覆盖掉吗
  • ¥15 使用esm_msa1_t12_100M_UR50S蛋白质语言模型进行零样本预测时,终端显示出了sequence handled的进度条,但是并不出结果就自动终止回到命令提示行了是怎么回事:
  • ¥15 前置放大电路与功率放大电路相连放大倍数出现问题
  • ¥30 关于<main>标签页面跳转的问题
  • ¥80 部署运行web自动化项目
  • ¥15 腾讯云如何建立同一个项目中物模型之间的联系
  • ¥30 VMware 云桌面水印如何添加
  • ¥15 用ns3仿真出5G核心网网元
  • ¥15 matlab答疑 关于海上风电的爬坡事件检测
  • ¥88 python部署量化回测异常问题