spring aop示例_Spring JpaRepository示例(内存中)

spring aop示例

这篇文章描述了一个使用内存中HSQL数据库的简单Spring JpaRepository示例。 该代码示例可从GitHub的Spring-JpaRepository目录中获得。 它基于带有注释的Spring-MVC-示例和此处提供的信息 。

JPA资料库

在此示例中,我们实现了一个虚拟bean:

@Entity
@AutoProperty
public class SomeItem {@Id@GeneratedValue(strategy=GenerationType.AUTO)private long Id;private String someText;/* ...Setters & Getters */}

和相应的JpaRepository :

@Transactional
public interface SomeItemRepositoryextends JpaRepository<SomeItem, Long> {}

服务与控制器

接下来,我们实现一个将注入我们的存储库的服务。 我们还用伪数据填充存储库:

@Service
@Repository
public class SomeItemService {@Autowiredprivate SomeItemRepository someItemRepository;@PostConstruct@Transactionalpublic void populate() {SomeItem si = new SomeItem();si.setSomeText("aaa");someItemRepository.saveAndFlush(si);si = new SomeItem();si.setSomeText("bbb");someItemRepository.saveAndFlush(si);si = new SomeItem();si.setSomeText("ccc");someItemRepository.saveAndFlush(si);}@Transactional(readOnly=true)public List<SomeItem> getAll() {return someItemRepository.findAll();}@SuppressWarnings("AssignmentToMethodParameter")@Transactionalpublic SomeItem saveAndFlush(SomeItem si) {if ( si != null ) {si = someItemRepository.saveAndFlush(si);}return si;}@Transactionalpublic void delete(long id) {someItemRepository.delete(id);}}

和一个控制器:

@Controller
public class MyController {@Autowiredprivate SomeItemService someItemService;@RequestMapping(value = "/")public ModelAndView index() {ModelAndView result = new ModelAndView("index");result.addObject("items", this.someItemService.getAll());return result;}@RequestMapping(value = "/delete/{id}")public String delete(@PathVariable(value="id") String id) {this.someItemService.delete(Long.parseLong(id));return "redirect:/";}@RequestMapping(value = "/create")@SuppressWarnings("AssignmentToMethodParameter")public String add() {SomeItem si = new SomeItem();si.setSomeText("Time is: " + System.currentTimeMillis());this.someItemService.saveAndFlush(si);return "redirect:/";}}

JPA配置

除了基于HSQL数据库的内存实例创建实体管理器之外,我们还通过以下方式启用JPA存储库:
@EnableJpaRepositories批注:

@Configuration
@EnableJpaRepositories(basePackages={"com.jverstry"})
@EnableTransactionManagement
public class JpaConfig implements DisposableBean {private EmbeddedDatabase ed;@Bean(name="hsqlInMemory")public EmbeddedDatabase hsqlInMemory() {if ( this.ed == null ) {EmbeddedDatabaseBuilder builder = new EmbeddedDatabaseBuilder();this.ed = builder.setType(EmbeddedDatabaseType.HSQL).build();}return this.ed;}@Beanpublic LocalContainerEntityManagerFactoryBean entityManagerFactory(){LocalContainerEntityManagerFactoryBean lcemfb= new LocalContainerEntityManagerFactoryBean();lcemfb.setDataSource(this.hsqlInMemory());lcemfb.setPackagesToScan(new String[] {"com.jverstry"});lcemfb.setPersistenceUnitName("MyPU");HibernateJpaVendorAdapter va = new HibernateJpaVendorAdapter();lcemfb.setJpaVendorAdapter(va);Properties ps = new Properties();ps.put("hibernate.dialect", "org.hibernate.dialect.HSQLDialect");ps.put("hibernate.hbm2ddl.auto", "create");lcemfb.setJpaProperties(ps);lcemfb.afterPropertiesSet();return lcemfb;}@Beanpublic PlatformTransactionManager transactionManager(){JpaTransactionManager tm = new JpaTransactionManager();tm.setEntityManagerFactory(this.entityManagerFactory().getObject() );return tm;}@Beanpublic PersistenceExceptionTranslationPostProcessor exceptionTranslation(){return new PersistenceExceptionTranslationPostProcessor();}@Overridepublic void destroy() {if ( this.ed != null ) {this.ed.shutdown();}}}

JSP页面

我们创建一个简单的页面来列出具有删除链接的现有项目,以及创建新项目的可能性:

运行示例

可以使用maven tomcat:run目标运行它。 然后,浏览:http:// localhost:9191 / spring-jparepository /

参考: Spring JpaRepository示例(内存中),来自我们的JCG合作伙伴 Jerome Versrynge,在技术说明博客中。

翻译自: https://www.javacodegeeks.com/2013/04/spring-jparepository-example-in-memory.html

spring aop示例

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

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

相关文章

python人工智能入门优达视频_机器学习:优达教你搭建Python 环境的正确姿势

原标题&#xff1a;机器学习:优达教你搭建Python 环境的正确姿势为机器学习搭建好 Python 环境听起来简单&#xff0c;但有时候坑还不少。如果此前没有配置过类似的环境&#xff0c;很可能会苦苦折腾各种命令好几个小时。可是我明明只是想马上搞起来我的机器学习&#xff01; 在…

java ee cdi_Java EE CDI ConversationScoped示例

java ee cdi在本教程中&#xff0c;我们将向您展示如何在Web应用程序中创建和使用ConversationScoped Bean。 在CDI中&#xff0c;bean是定义应用程序状态和/或逻辑的上下文对象的源。 如果容器可以根据CDI规范中定义的生命周期上下文模型来管理其实例的生命周期&#xff0c;则…

js input 自动换行_深入Slate.js - 拯救 ContentEditble

我们是钉钉的文档协同团队&#xff0c;我们在做一些很有意义的事情&#xff0c;其中之一就是自研的文字编辑器。为了把自研文字编辑器做好&#xff0c;我们调研了开源社区各种优秀编辑器&#xff0c;Slate.js 是其中之一&#xff08;实际上&#xff0c;自研文字编辑器前&#x…

printf 地址_C程序显示主机名和IP地址

查找本地计算机的主机名和IP地址的方法有很多。这是使用C程序查找主机名和IP地址的简单方法。我们将使用以下功能&#xff1a;gethostname() &#xff1a;gethostname函数检索本地计算机的标准主机名。gethostbyname() &#xff1a;gethostbyname函数从主机数据库中检索与主机名…

java 定义变量时 赋值与不赋值_探究Java中基本类型和部分包装类在声明变量时不赋值的情况下java给他们的默认赋值...

探究Java中基本类型和部分包装类在声明变量时不赋值的情况下java给他们的默认赋值当基本数据类型作为普通变量(八大基本类型&#xff1a; byte,char,boolean,short,int,long,float,double)只有开发人员对其进行初始化&#xff0c;java不会对其进行初始化&#xff0c;如果不初始…

java 字符串 移位_使用位运算、值交换等方式反转java字符串-共四种方法

在本文中&#xff0c;我们将向您展示几种在Java中将String类型的字符串字母倒序的几种方法。StringBuilder(str).reverse()char[]循环与值交换byte循环与值交换apache-commons-lang3如果是为了进行开发&#xff0c;请选择StringBuilder(str).reverse()API。出于学习的目的&…

xstream xml模板_XStream – XStreamely使用Java中的XML数据的简便方法

xstream xml模板有时候&#xff0c;我们不得不处理XML数据。 而且大多数时候&#xff0c;这不是我们一生中最快乐的一天。 甚至有一个术语“ XML地狱”描述了程序员必须处理许多难以理解的XML配置文件时的情况。 但是&#xff0c;不管喜欢与否&#xff0c;有时我们别无选择&…

python知识点智能问答_基于知识图谱的智能问答机器人

研究背景及意义 智能问答是计算机与人类以自然语言的形式进行交流的一种方式&#xff0c;是人工智能研究的一个分支。 知识图谱本质上是一种语义网络&#xff0c;其结点代表实体&#xff08;entity&#xff09;或者概念&#xff08;concept&#xff09;&#xff0c;边代表实体/…

java会了还学什么_java都学哪些内容?学完之后可以做哪些工作?

展开全部阶段一&#xff1a;揭开企业开发神秘面纱 (4周32313133353236313431303231363533e78988e69d8331333431336163)1) Web开发基础&#xff1a;HTML语言、JavaScript、CSS、DOM等2) Oracle数据库基础&#xff1a;安装、配置Oracle数据库&#xff0c;熟练掌握SQL语句3) 操作系…

Java中的RAII

资源获取即初始化&#xff08; RAII &#xff09;是Bjarne Stroustrup用C 引入的一种用于异常安全资源管理的设计思想。 感谢垃圾回收&#xff0c;Java 没有此功能&#xff0c;但是我们可以使用try-with-resources实现类似的功能。 约翰哈德斯&#xff08;John Huddles&#x…

eclipse juno_Eclipse Juno上带有GlassFish的JavaEE 7

eclipse junoJava EE 7很热。 前四个JSR最近通过了最终批准选票&#xff0c;与此同时GlassFish 4达到了升级版83。 如果您关注我的博客&#xff0c;那么您将了解NetBeans的大部分工作。 但是我确实认识到&#xff0c;那里还有其他IDE用户&#xff0c;他们也有权试用最新和最出色…

java 生成校验验证码_java 验证码生成与校验

java绘图相关类验证码工具类package dt2008.util;import javax.imageio.ImageIO;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;import java.awt.*;import java.awt.image.BufferedImage;import java.io.IOException;import ja…

红黑树中nil结点_什么是红黑树?程序员面试必问!

点击上方java小组&#xff0c;选择“置顶公众号”优质文章&#xff0c;第一时间送达当在10亿数据中只需要进行10几次比较就能查找到目标时&#xff0c;不禁感叹编程之魅力&#xff01;人类之伟大呀&#xff01; —— 学红黑树有感。终于&#xff0c;在学习了几天的红黑树相关的…

杰克逊JSON解析错误-UnrecognizedPropertyException:无法识别的字段,未标记为可忽略[已解决]...

在解析从我们的一个RESTful Web服务接收到的JSON字符串时&#xff0c;我收到此错误“线程“ main”中的异常com.fasterxml.jackson.databind.exc.UnrecognizedPropertyException&#xff1a;无法识别的字段“人”&#xff08;类Hello $ Person&#xff09;&#xff0c;不是标记…

mysql2008数据库配置_SQL Server 2008 R2 超详细安装图文教程

这篇文章主要介绍了SQL Server 2008 R2 超详细安装图文教程,需要的朋友可以参考下一、下载SQL Server 2008 R2安装文件二、将安装文件刻录成光盘或者用虚拟光驱加载&#xff0c;或者直接解压&#xff0c;打开安装文件&#xff0c;出现下面的界面安装SQL Server 2008 R2需要.NET…

hdfs读写流程_深度探索Hadoop分布式文件系统(HDFS)数据读取流程

一、开篇Hadoop分布式文件系统(HDFS)是Hadoop大数据生态最底层的数据存储设施。因其具备了海量数据分布式存储能力&#xff0c;针对不同批处理业务的大吞吐数据计算承载力&#xff0c;使其综合复杂度要远远高于其他数据存储系统。因此对Hadoop分布式文件系统(HDFS)的深入研究&a…

mysql隔离级别验证_MySQL事务隔离级别以及验证

查询初始数据开启A事务  并做更新操作再另一端 B开始另一个事务查询 事务级别设置为读未提查询到事务未提交的数据 a的count修改为3 但是没有提交2 第二个级别 读已提交 避免脏读问题 但是有不可重复读问题回滚数据 修改隔离级别 确保都是 读已提交级别客户端A客户端B验证 脏…

注意力机制可视化_目标跟踪中的(STAM)时空注意力机制

目标跟踪分为单目标跟踪和多目标跟踪&#xff0c;单目标跟踪较为简单&#xff0c;这里我们只讨论多目标跟踪。多目标跟踪的遮挡问题多目标跟踪时特别容易发生目标间的相互遮挡&#xff0c;从而导致严重的预测偏移问题&#xff0c;如下图所示&#xff1a;红色框的行人在和蓝色框…

js给标签添加属性和值_jquery节点属性

一.节点操作1.DOM内容节点操作&#xff1a;​ ①innerHTML属性&#xff1a;设置或获取文本的内容&#xff08;普通文本和标签&#xff09;。​ ②innerText属性&#xff1a;设置或获取文本的内容&#xff08;普通文本&#xff09;&#xff0c;存在兼容性问题。2.jQuery内容节点…

sci translate好用吗_228个学科分类对应12000+本SCI和SSCI期刊,总有你要的那款!

最近有很多小伙伴询问选刊的问题&#xff0c;而且都是非常具体的学科方向&#xff0c;我们的小编虽然非常热心且礼貌的回答“近期安排”&#xff0c;但其实我们也感觉到鸭梨山大:根据WOS最新一期&#xff08;2020/9/21&#xff09;名单公布&#xff0c;WOS目前总共收录了12266本…