新建一个spring-boot工程,maven的pom文件中添加如下依赖:
<!--spring-boot起步依赖-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter</artifactId>
</dependency>
<!--lombok依赖,可简化代码-->
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<optional>true</optional>
</dependency>
<!--paoding-rose-jade基础依赖, 注意去除paoding-rose-jade中的spring相关依赖,否则会与项目本身的spring-boot冲突引发无法实例化bean的错误-->
<dependency>
<groupId>com.54chen</groupId>
<artifactId>paoding-rose-jade</artifactId>
<version>1.1</version>
<!--排除paoding-rose-jade中的Spring相关依赖-->
<exclusions>
<exclusion>
<artifactId>spring</artifactId>
<groupId>org.springframework</groupId>
</exclusion>
</exclusions>
</dependency>
<!--dbcp数据库连接池依赖-->
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-dbcp2</artifactId>
<version>2.7.0</version>
</dependency>
<!--jdbc依赖-->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-jdbc</artifactId>
<version>5.2.1.RELEASE</version>
</dependency>
<!--mysql数据库驱动依赖-->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
</dependency>
<!--web应用起步依赖-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
项目文件目录结构如下:
下面依次展示每个文件的代码:
JadeConfig.java
@Configuration
public class JadeConfig extends JadeBeanFactoryPostProcessor {
}
说明: 由名称知道这是一个配置类,只需要像如上继承JadeBeanFactoryPostProcessor即可,无需自己实现任何方法。有了如上声明, jade框架会帮我们自动处理被@DAO注解的类(生成对应DAO类的bean并注入到容器中)。
Test.java
//@Data注解属于lombok包,它会在编译阶段帮我们自动生成getter和setter方法
@Data
public class Test {
int id;
String msg;
}
说明: 这是一个简陋的model, 用于返回数据。这里采用lombok的注解节省了setter和getter方法
TestDAO.java
@DAO
public interface TestDAO {
@SQL("select id, msg from test limit 1")
Test getTest();
}
说明:这个类就是DAO类。这个类说明了paoding-rose-jade框架的强大的之处,可以使用 @SQL注解在方法上直接书写SQL语句! 并且只需写如上的接口,加上前面的JadeConfig.java类,就完成了DAO类的所有配置。
!注意!jade框架强制要求被@DAO注解的类的名称必须以DAO结尾,不能是Dao、dao等其他形式。如果不是这样,jade框架将不能识别这个DAO类,无法完成这个类的自动注入。
TestService.java
@Service
public class TestService {
@Autowired
private TestDAO testDAO;
public Test getTest(){
return testDAO.getTest();
}
}