Aquí usaré Spring para desarrollar un proyecto de librería simple.
Paso 1: el software de desarrollo utilizado es idea y el paquete jar utilizado es
La descarga de estos frascos se puede descargar en el sitio web oficial , elija la versión 5.2.6 para descargar, si no lo hace, comente en el mensaje privado a continuación
Paso 2: abra la idea, cree un proyecto Java y luego nombre el proyecto BookStore
Paso 3: importa el paquete jar
① Cree una carpeta libs debajo de la carpeta del proyecto para almacenar paquetes jar y copie los 12 paquetes jar anteriores directamente en la carpeta
② Importe el jar, el primer paso es simplemente copiar el paquete jar en él, y aún no se puede usar
Paso 4: Cree el paquete com.tty.spring bajo src y luego continúe creando 5 paquetes bajo el paquete, que son la configuración de la carpeta de configuración, la entidad de la carpeta de la entidad y luego la arquitectura de tres niveles (control de la capa de control, capa empresarial servicio, capa de persistencia dao)
Paso 5: cree una clase BookConfig en la carpeta de configuración y escriba el código
Paso 6: cree un libro de clase en la carpeta de la entidad y escriba el código
Paso 7: cree la interfaz BookDao y la clase BookDaoImpl en la carpeta de la capa de persistencia y escriba el código
Paso 8: cree una clase BookService en la carpeta de la capa empresarial y escriba el código
Paso 9: cree una clase BookControl debajo de la capa de control y escriba el código
Paso 10: cree tres clases en el paquete com.tty.spring, a saber, clase de entrada BookStoreEntry, clase de mejora BookStoreProxy, clase de prueba TestBookStore y código de escritura
① Escribamos primero la clase mejorada, que también se llama "agente"
② Primero escribamos la clase de prueba, esta clase es para probar
Después de escribir aquí, simplemente podemos probarlo.
El resultado es el siguiente:
③ Finalmente, escribiremos la clase de entrada a la librería.
Haga clic en el método principal para ejecutar una vez, y el resultado es el siguiente:
Se completa un proyecto simple de librería pequeña y se adjuntan varios códigos fuente a continuación:
// 配置类源码
package com.tty.spring.config;
import org.springframework.context.annotation.ComponentScan;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.EnableAspectJAutoProxy;
@Configuration
@ComponentScan(basePackages = "com.tty.spring")
@EnableAspectJAutoProxy
public class BookConfig {
}
//实体类源码
package com.tty.spring.entity;
import org.springframework.stereotype.Component;
@Component
public class Book {
private String b_name;
private int b_price;
public void setB_name(String b_name) {
this.b_name = b_name;
}
public void setB_price(int b_price) {
this.b_price = b_price;
}
@Override
public String toString() {
return "Book{" +
"b_name='" + b_name + '\'' +
", b_price=" + b_price +
'}';
}
}
//持久层 接口源码
package com.tty.spring.dao;
import com.tty.spring.entity.Book;
public interface BookDao {
public Book queryBook();
}
//持久层接口实现类源码
package com.tty.spring.dao;
import com.tty.spring.entity.Book;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Repository;
@Repository
public class BookDaoImpl implements BookDao{
@Autowired
private Book book;
@Override
public Book queryBook() {
book.setB_name("spring教程");
book.setB_price(99);
return this.book;
}
}
//服务层源码
package com.tty.spring.service;
import com.tty.spring.dao.BookDao;
import com.tty.spring.entity.Book;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import org.springframework.stereotype.Service;
@Service
public class BookService {
@Autowired
private BookDao bookDao;
public Book queryBook(){
return bookDao.queryBook();
}
}
//控制层源码
package com.tty.spring.control;
import com.tty.spring.entity.Book;
import com.tty.spring.service.BookService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import org.springframework.stereotype.Controller;
@Controller
public class BookControl {
@Autowired
private BookService bookService;
public Book sellBook(){
return bookService.queryBook();
}
}
//增强类源码
package com.tty.spring;
import org.aspectj.lang.annotation.Aspect;
import org.aspectj.lang.annotation.Before;
import org.springframework.stereotype.Component;
@Component
@Aspect
public class BookStoreProxy {
@Before(value = "execution(* com.tty.spring.service.BookService.queryBook(..))")
public void before(){
System.out.println("现在开始卖书啦!....");
}
}
//测试类源码
package com.tty.spring;
import com.tty.spring.config.BookConfig;
import com.tty.spring.control.BookControl;
import com.tty.spring.entity.Book;
import com.tty.spring.service.BookService;
import org.junit.Test;
import org.springframework.context.ApplicationContext;
import org.springframework.context.annotation.AnnotationConfigApplicationContext;
public class TestBookStore {
@Test
public void test(){
ApplicationContext context = new AnnotationConfigApplicationContext(BookConfig.class);
BookControl bookControl = context.getBean("bookControl", BookControl.class);
Book book = bookControl.sellBook();
System.out.println(book);
}
}
//书店入口类
package com.tty.spring;
import com.tty.spring.config.BookConfig;
import com.tty.spring.control.BookControl;
import com.tty.spring.entity.Book;
import org.springframework.context.ApplicationContext;
import org.springframework.context.annotation.AnnotationConfigApplicationContext;
import java.util.Scanner;
public class BookStoreEntry {
public static void main(String[] args) {
ApplicationContext context = new AnnotationConfigApplicationContext(BookConfig.class);
BookControl bookControl = context.getBean("bookControl", BookControl.class);
System.out.println("您好! 欢迎光临本书店");
System.out.println("请选择 1. 购书 | 2.离开 ");
Scanner sc=new Scanner(System.in);
int val=sc.nextInt();
if(val==1){
Book book = bookControl.sellBook();
System.out.println(book);
}
if (val==2){
System.out.println("欢迎下次再来!");
}
}
}