# Integrating elastic search with existing spring boot application

**URL:** <https://discuss.elastic.co/t/integrating-elastic-search-with-existing-spring-boot-application/149463>\
**Category:** Elasticsearch\
**Created:** [September 21, 2018, 1:20pm UTC](https://discuss.elastic.co/t/integrating-elastic-search-with-existing-spring-boot-application/149463 "2018-09-21T13:20:45Z")\
**Posts on this page:** 6\
**Page:** 1

<div class="post-metadata">

**Author:** ![mohabshihab](https://avatars.discourse-cdn.com/v4/letter/m/90db22/32.png) [@mohabshihab](https://discuss.elastic.co/u/mohabshihab)\
**Post date:** [September 21, 2018, 1:20pm UTC](https://discuss.elastic.co/t/integrating-elastic-search-with-existing-spring-boot-application/149463/1 "2018-09-21T13:20:45Z")

</div>

I have an under development springboot application and need to use elastic search for items search for items search

I am using spring data elastic search repository implementation

my question is what's the best practice to insert and update data at the elastic search repository

should I apply this via aspect programming or modify the business logic implementation and add the repository save function all

---

<div class="post-metadata">

**Author:** ![dadoonet](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/dadoonet/32/137187_2.png) [@dadoonet](https://discuss.elastic.co/u/dadoonet)\
**Post date:** [September 21, 2018, 2:04pm UTC](https://discuss.elastic.co/t/integrating-elastic-search-with-existing-spring-boot-application/149463/2 "2018-09-21T14:04:30Z")

</div>

I'd modify the business logic.  
An example here:

> <https://github.com/dadoonet/legacy-search/blob/01-direct/src/main/java/fr/pilato/demo/legacysearch/service/PersonService.java>

(Look at the `save` method).

---

<div class="post-metadata">

**Author:** ![mohabshihab](https://avatars.discourse-cdn.com/v4/letter/m/90db22/32.png) [@mohabshihab](https://discuss.elastic.co/u/mohabshihab)\
**Post date:** [September 21, 2018, 3:57pm UTC](https://discuss.elastic.co/t/integrating-elastic-search-with-existing-spring-boot-application/149463/3 "2018-09-21T15:57:47Z")

</div>

Thanks @dadoonet

I see many implementation the as you said, but

Doesn't this with the single responsibility principle ?  
Why not selecting to implement JPA entity listener and call save at persist event or user aspect oriented programming

---

<div class="post-metadata">

**Author:** ![dadoonet](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/dadoonet/32/137187_2.png) [@dadoonet](https://discuss.elastic.co/u/dadoonet)\
**Post date:** [September 21, 2018, 4:20pm UTC](https://discuss.elastic.co/t/integrating-elastic-search-with-existing-spring-boot-application/149463/4 "2018-09-21T16:20:06Z")

</div>

It can work. But I honestly prefer to decouple the storage logic vs the search logic.

---

<div class="post-metadata">

**Author:** ![mohabshihab](https://avatars.discourse-cdn.com/v4/letter/m/90db22/32.png) [@mohabshihab](https://discuss.elastic.co/u/mohabshihab)\
**Post date:** [September 22, 2018, 4:14am UTC](https://discuss.elastic.co/t/integrating-elastic-search-with-existing-spring-boot-application/149463/5 "2018-09-22T04:14:10Z")

</div>

Thanks

---

<div class="post-metadata">

**Author:** ![system](https://us1.discourse-cdn.com/elastic/original/3X/1/a/1ac57faf039f6b580b3f104ef42a2a89e41014de.png) [@system](https://discuss.elastic.co/u/system)\
**Post date:** [October 20, 2018, 4:14am UTC](https://discuss.elastic.co/t/integrating-elastic-search-with-existing-spring-boot-application/149463/6 "2018-10-20T04:14:13Z")

</div>

This topic was automatically closed 28 days after the last reply. New replies are no longer allowed.
