<prompt> Unda programu tumizi ya Java Spring Boot ambayo inafichua API RESTful ya kudhibiti mfumo wa maktaba. API inapaswa kusaidia kuunda, kusoma, kusasisha, na kufuta vitabu na waandishi. Vitabu vinapaswa kuhusishwa na mwandishi mmoja au zaidi, na waandishi wanapaswa kuwa na orodha ya vitabu vyao. Tumia Hibernate kuhifadhi data kwenye hifadhidata ya MySQL.  <response>: Ili kuunda programu ya Java Spring Boot ambayo inafichua API ya RESTful ya kudhibiti mfumo wa maktaba, fuata hatua hizi:1. Weka muundo wa mradi na utegemezi2. Unda miundo ya kikoa vitu vya Kitabu na Mwandishi3. Sanidi muunganisho wa hifadhidata ya MySQL na mipangilio ya Hibernate4. Tekeleza hazina ili kuingiliana na hifadhidata5. Tekeleza huduma za kushughulikia mantiki ya biashara6. Tekeleza vidhibiti ili kufichua API zenye RESTfulHapa kuna mfano wa utekelezaji wa kila hatua:Hatua ya 1: Sanidi muundo wa mradi na vitegemeziUnda mradi mpya wa Spring Boot ukitumia start.spring.io au IDE yako uipendayo. Ongeza tegemezi zifuatazo:- Wavuti spring-boot-starter-web- JPA spring-boot-starter-data-jpa- Dereva wa MySQL mysql:mysql-kontakt-javaHatua ya 2: Unda miundo ya kikoa vitu vya Kitabu na MwandishiBook.java: javakuagiza javax.persisence.;agiza java.util.HashSet;agiza java.util.Set;EntityKitabu cha darasa la umma kitambulisho GeneratedValuemkakati GenerationType.IDENTITY Kitambulisho cha kibinafsi cha muda mrefu; Kichwa cha Kamba ya kibinafsi; ManyToManymappedBy vitabu Seti ya faragha waandishi new HashSet; Wajenzi, wapataji, wawekaji, sawa, hashCodeMwandishi.java: javakuagiza javax.persisence.;agiza java.util.HashSet;agiza java.util.Set;EntityMwandishi wa darasa la umma kitambulisho GeneratedValuemkakati GenerationType.IDENTITY Kitambulisho cha kibinafsi cha muda mrefu; jina la kamba ya kibinafsi; ManyToManycascade CascadeType.PERSIST, CascadeType.MERGE JoinTablejina author_book, joinColumns JoinColumnjina author_id, inverseJoinColumns JoinColumnjina kitabu_kitabu private Set books new HashSet; Wajenzi, wapataji, wawekaji, sawa, hashCodeHatua ya 3: Sanidi muunganisho wa hifadhidata ya MySQL na mipangilio ya Hibernatemaombi.sifa:spring.datasource.urljdbc:mysql:localhost:3306library?useSSLfalseserverTimezoneUTCspring.datasource.usernamemzizispring.datasource.passwordnenosiri_languspring.jpa.hibernate.ddl-autosasishaspring.jpa.show-sqlkwelispring.jpa.properties.hibernate.dialectorg.hibernate.dialect.MySQL5DialectHatua ya 4: Tekeleza hazina ili kuingiliana na hifadhidataBookRepository.java: javaagiza org.springframework.data.repository.CrudRepository;kiolesura cha umma BookRepository huongeza CrudRepository AuthorRepository.java: javaagiza org.springframework.data.repository.CrudRepository;kiolesura cha umma AuthorRepository huongeza CrudRepository Hatua ya 5: Tekeleza huduma za kushughulikia mantiki ya biasharaBookService.java: javaimport org.springframework.beans.factory.annotation.Autowired;kuagiza org.springframework.stereotype.Service;HudumaHuduma ya Vitabu ya darasa la umma Ina waya otomatiki Kitabu cha kibinafsi cha Hifadhi ya KitabuRepository; Mbinu za CRUD za vitabu k.m., kuunda, kusoma, kusasisha, kufutaAuthorService.java: javaimport org.springframework.beans.factory.annotation.Autowired;kuagiza org.springframework.stereotype.Service;HudumaPublic class AuthorService Ina waya otomatiki Mwandishi binafsiRepository authorRepository; Mbinu za CRUD kwa waandishi k.m., kuunda, kusoma, kusasisha, kufutaHatua ya 6: Tekeleza vidhibiti ili kufichua API RESTfulBookController.java: javaimport org.springframework.beans.factory.annotation.Autowired;import org.springframework.web.bind.annotation.;RestControllerRequestMappingapivitabudarasa la umma BookController Ina waya otomatiki Kitabu cha Huduma ya kibinafsi ya KitabuHuduma; Ramani maombi ya HTTP kwa mbinu za huduma k.m., GET, POST, PUT, DELETEAuthorController.java: javaimport org.springframework.beans.factory.annotation.Autowired;import org.springframework.web.bind.annotation.;RestControllerRequestMappingapiwaandishiMdhibiti wa darasa la umma Ina waya otomatiki Mwandishi binafsiHuduma ya MwandishiHuduma; Ramani maombi ya HTTP kwa mbinu za huduma k.m., GET, POST, PUT, DELETESasa una programu ya Java Spring Boot inayofichua API RESTful ya kudhibiti mfumo wa maktaba yenye usaidizi wa kuunda, kusoma, kusasisha na kufuta vitabu na waandishi. Data imehifadhiwa kwenye hifadhidata ya MySQL kwa kutumia Hibernate. 