springboot学习-JPA

一、mac下安装mysql。使用Navicat Premium查看数据库。创建test库。配置mysql账号密码

二、配置application.properties。其作用是配置一些可以手动修改而不需要编译的变量,在打包时可以不需要重新编译。

springboot默认了很多环境变量,如Tomcat的默认端口是8080.springboot允许自定义一个application.properties文件,放到特定位置,来重写springboot的环境变量或者自定义环境变量。

特定的位置如下

  1. 当前目录的 “/config”的子目录下
  2. 当前目录下
  3. classpath根目录的“/config”包下
  4. classpath的根目录下
本Demo位置放于当前目录下,进行了mysql的链接配置信息。


三、分别配置java bean,controller,repository(Dao),service

   1、java bean-对应数据库表的实体类 

    @Entity标示这是一个实体类   @Table(name = 'xxxx")数据库中对应的表名称

     @Id   @GeneratedValue 对应ID 主键     @Column(name = "name")对应属性名,默认是将catName变为cat_name

   2、编写dao层 @Repository用于标注数据访问组件,即DAO组件

   新建接口类并继承CrudRepository。CrudRepository接口继承于Repository接口,并新增了简单的增删查等方法。

    3、Service层--业务层 @Service用于标注业务层组件

    4、Controller层--控制层 @Controller用于标注控制层组件(如struts中的action)

   @Component泛指组件,当组件不好归类的时候,我们可以使用这个注解进行标注。

四、这些注解的意义与来源

 在一个稍大的项目中,如果组件采用xml的bean定义来配置,显然会增加配置文件的体积,查找以及维护起来也不太方便。 
Spring2.5为我们引入了组件自动扫描机制,他在类路径下寻找标注了上述注解的类,并把这些类纳入进spring容器中管理。
它的作用和在xml文件中使用bean节点配置组件时一样的。


@Autowired

把DAO实现类注入到action的service接口(注意不要是service的实现类)中,注入时不要new 这个注入的类,因为spring会自动注入,如果手动再new的话会出现错误,
然后属性加上@Autowired后不需要getter()和setter()方法,Spring也会自动注入。


@Transactional

提供一种控制事务管理的快捷手段,打了这个注解的类或者方法表示该类里面的所有方法或者这个方法的事务由spring处理,来保证事务的原子性,即是方法里面对数据库操作,如果失败则spring负责回滚操作,成功提交操作

需要学习的DAO层,@Transactional

 
 

猜你喜欢

转载自blog.csdn.net/zhangbinhn/article/details/76239421