Bu depo, Spring Boot ile oluşturulmuş 32 küçük örnek projeden oluşan bir koleksiyonu içermektedir. Her proje, belirli bir konsepti veya teknolojiyi göstermek, açık ve özlü bir örnek sunmak üzere tasarlanmıştır.
- Port Numarası Yapılandırması: Herhangi bir Spring Boot uygulamasının varsayılan port numarasını değiştirmek için,
src/main/resources/application.propertiesdosyasında bulunanserver.portözelliğini düzenleyebilirsiniz. Örneğin:server.port=8182 - Veritabanı Şeması Oluşturma: JPA ve Hibernate kullanan projeler için,
application.propertiesdosyasındaspring.jpa.hibernate.ddl-autoayarını yaparak otomatik veritabanı tablo oluşturmayı yapılandırabilirsiniz.create: Uygulama her başladığında tablolar sıfırdan oluşturulacaktır.update: Mevcut tablolar güncellenecek ve yeni tablolar yoksa oluşturulacak, mevcut veriler korunacaktır. İlk kurulumdan sonra kalıcılık içinupdatekullanılması önerilir.
https://docs.spring.io/spring-data/jpa/docs/current/reference/html/
https://www.logicbig.com/
https://howtodoinjava.com/
https://o7planning.org/
https://www.concretepage.com/spring-boot/
https://memorynotfound.com/
https://www.dineshonjava.com/
- Açıklama: Bir Spring Boot uygulamasını kurmanın ve çalıştırmanın temel adımlarını gösteren "Merhaba Dünya" örneği.
- Teknolojiler: Spring Boot.
- Veritabanı: PostgreSQL (varsayılan).
- Linkler:
http://localhost:3092/,http://localhost:3092/welcome
- Açıklama: Bir Spring Boot uygulamasında JavaServer Pages (JSP) dosyalarını görünüm şablonları olarak nasıl entegre edeceğinizi ve render edeceğinizi gösterir.
- Teknolojiler: Spring Boot, JSP.
- Veritabanı: PostgreSQL (varsayılan).
- Linkler:
http://localhost:8182/,http://localhost:8182/personels
- Açıklama:
src/main/resources/public/error/dizinine HTML dosyaları yerleştirerek Spring Boot uygulamasında özel hata sayfalarını (örneğin, 404, 403) nasıl uygulayacağınızı gösterir. - Teknolojiler: Spring Boot, HTML.
- Veritabanı: PostgreSQL (varsayılan).
- Kullanım:
http://localhost:8182/denemegibi var olmayan yollara erişim, özel hata sayfasını gösterecektir.
- Açıklama: CRUD işlemleri için temel HTTP metotlarını (GET, POST, PUT, DELETE) gösteren statik bir REST API örneği. API etkileşimi için JUnit testleri içerir.
- Teknolojiler: Spring Boot, REST API, JUnit.
- Veritabanı: PostgreSQL (varsayılan).
- Kullanım: Test için
PersonelClinicRestControllerTest.java'yı çalıştırın. Veri değişikliklerilocalhost:8182/rest/personelsadresinden gözlemlenebilir.
- Açıklama: Bellek içi H2 veritabanı ile JDBC kullanımını gösterir.
data.sqlveschema.sqlkullanarak şemaları, tabloları oluşturma ve veri ekleme örneklerini içerir. - Teknolojiler: Spring Boot, JDBC, H2 Veritabanı, REST API.
- Veritabanı: H2.
- Kullanım:
src/main/resources/data.sqlveschema.sql'ı inceleyin.PersonelClinicRestControllerTest.java'dakicreatePersonelTest,deletePersonelTest'i çalıştırın.
- Açıklama: Veri kalıcılığı için JPA (Java Persistence API) ile H2 bellek içi veritabanının entegrasyonunu gösterir.
@Transactional,@Id,@GeneratedValue,@Entity,@Tableve@Columngibi temel JPA anotasyonlarına odaklanır. - Teknolojiler: Spring Boot, JPA, H2 Veritabanı, REST API.
- Veritabanı: H2.
- Açıklama:
application.propertiesdosyasında tanımlanan statik kullanıcı kimlik bilgileriyle giriş, çıkış, özel giriş sayfaları ve "beni hatırla" işlevselliğini sergileyen basit bir Spring Security örneği. - Teknolojiler: Spring Boot, Spring Security.
- Veritabanı: PostgreSQL (varsayılan).
- Yapılandırma: Kullanıcı kimlik bilgileri
application.propertiesdosyasında değiştirilebilir.
- Açıklama: PostgreSQL veritabanı ile JPA kullanarak temel CRUD (Oluştur, Oku, Güncelle, Sil) işlemlerini gösterir. pgAdmin 4'te
customertablosunu kurma talimatlarını içerir. - Teknolojiler: Spring Boot, JPA, PostgreSQL.
- Veritabanı: PostgreSQL.
- Kullanım: Önce veri eklemek için
localhost:8182/save, ardındanlocalhost:8182/findall,localhost:8182/findbyid?id=3,localhost:8182/findbylastname?lastname=Terim.
- Açıklama: H2 veritabanı ile Spring Security kullanarak rol tabanlı yetkilendirme örneği. Farklı roller (ROLE_EDITOR, ROLE_ADMIN, ROLE_USER) belirli uç noktalara farklı erişim seviyelerine sahiptir. Hem düz metin hem de bcrypt şifreli parolaları gösterir.
- Teknolojiler: Spring Boot, Spring Security, H2 Veritabanı, Rol Tabanlı Yetkilendirme, Bcrypt.
- Veritabanı: H2.
- Yapılandırma: Kullanıcı rolleri ve parolaları
src/main/resources/data.sql'da tanımlanmıştır. Şifreli parolalar oluşturmak içinPasswordEncoderTest.javaiçerir.
- Açıklama: Kapsamlı bir CRUD uygulaması için JPA, PostgreSQL, RESTful hizmetler ve JSP'yi birleştirir. Veri yönetimi için hem REST uç noktaları hem de JSP görünümleri sunar.
- Teknolojiler: Spring Boot, JPA, PostgreSQL, REST API, JSP.
- Veritabanı: PostgreSQL.
- Kullanım:
localhost:8182/,localhost:8182/customers,localhost:8182/customer/1,localhost:8182/rest/customers,localhost:8182/rest/customer/1.
- Açıklama: İleri düzey JPA eşlemelerine, özellikle
@OneToOneilişkilerine,@JoinColumnve@JsonIgnoreanotasyonlarına odaklanarak PostgreSQL'de birden çok tablo arasında veri işlemeyi gösterir. - Teknolojiler: Spring Boot, Spring Data JPA, PostgreSQL,
@OneToOne,@JoinColumn,@JsonIgnore. - Veritabanı: PostgreSQL.
- Kullanım: Veri eklemek için
localhost:8182/insert. Ardındanlocalhost:8182/details,localhost:8182/customers,localhost:8182/customer/{id},localhost:8182/customerjson/{id}.
- Açıklama: PostgreSQL ile Spring Data JPA'daki
@ManyToOneilişkilerini ve özel SQL sorguları için@Queryanotasyonunun kullanımını inceler. - Teknolojiler: Spring Boot, Spring Data JPA, PostgreSQL,
@ManyToOne,@Query. - Veritabanı: PostgreSQL.
- Kullanım: Veri eklemek için
localhost:8182/insert. Ardındanlocalhost:8182/books,localhost:8182/book/{id},localhost:8182/customers,localhost:8182/customer/{id}.
- Açıklama: Hibernate ve PostgreSQL ile Spring Data JPA'da
@Embeddableve@Embeddedanotasyonlarının kullanımını, karmaşık tipleri varlıklar içine gömmeyi gösterir. - Teknolojiler: Spring Boot, Spring Data JPA, Hibernate, PostgreSQL,
@Embeddable,@Embedded. - Veritabanı: PostgreSQL.
- Kullanım: Veri eklemek için
localhost:8182/insert_car. Postman aracılığıyla REST işlemleri (POST içinlocalhost:8182/car, PUT/DELETE içinlocalhost:8182/car/{id}). Tarayıcı linkleri:localhost:8182/car1/{id},localhost:8182/car2/{id},localhost:8182/car_with_name/{name},localhost:8182/car_with_model/{model}.
- Açıklama: Thymeleaf'i Spring Data JPA ve PostgreSQL ile entegre ederek bir web uygulamasında
@OneToManyve@ManyToOneilişkilerini sergiler. - Teknolojiler: Spring Boot, Spring Data JPA, Thymeleaf, PostgreSQL,
@OneToMany,@ManyToOne. - Veritabanı: PostgreSQL.
- Kullanım: Veri eklemek için
localhost:8182/rest/insert. Ardındanlocalhost:8182/customers,localhost:8182/rest/customers,localhost:8182/rest/cust.
- Açıklama:
webConfigurationClass.java'da tanımlanan@Securedanotasyonu ve statik kullanıcı kimlik bilgileriyle rol tabanlı erişim kontrolünü gösteren, JPA ve PostgreSQL ile basit bir Spring Security örneği. - Teknolojiler: Spring Boot, Spring Security, JPA, PostgreSQL,
@Secured. - Veritabanı: PostgreSQL.
- Kullanıcı Kimlik Bilgileri:
admin / admin / ADMINcelal / celal / USERarda / arda / EDITOR
- Erişim Linkleri:
Herkese Açık:localhost:8182/userinfo/ADMIN:localhost:8182/rest/customers/USER:localhost:8182/rest/customers/,localhost:8182/rest/customer-by-email/{email}/,localhost:8182/customer/{email}/,localhost:8182/rest/customerbyname/{name}EDITOR:localhost:8182/rest/cust/,localhost:8182/rest/customer-by-name/{name}/
- Açıklama: Spring Data JPA'da Thymeleaf ve PostgreSQL ile
@ManyToManyilişkilerine ve@JoinTableanotasyonuna odaklanarak varlıklar arasındaki çoktan çoğa ilişkilerin nasıl ele alınacağını gösterir. - Teknolojiler: Spring Boot, Spring Data JPA, Thymeleaf, PostgreSQL,
@ManyToMany,@JoinTable. - Veritabanı: PostgreSQL.
- Açıklama: Spring Security ile JPA ve PostgreSQL kullanarak kullanıcı kaydı ve giriş işlevselliğinin kapsamlı bir örneği. Bir video gösterimi içerir.
- Teknolojiler: Spring Boot, Spring Security, JPA, Hibernate, PostgreSQL, Thymeleaf, Bootstrap.
- Veritabanı: PostgreSQL.
- Video:
- Açıklama: Bir Spring Boot uygulaması için NoSQL veritabanı olarak MongoDB'yi nasıl entegre edeceğinizi ve kullanacağınızı gösterir. MongoDB ile temel CRUD işlemlerini kapsar.
- Teknolojiler: Spring Boot, MongoDB.
- Veritabanı: MongoDB.
- Açıklama: Bir Spring Boot uygulamasında RabbitMQ ile mesaj kuyruklama örneği. Asenkron iletişim için üretici ve tüketici desenlerini gösterir.
- Teknolojiler: Spring Boot, RabbitMQ.
- Veritabanı: PostgreSQL (varsayılan).
- Açıklama: Spring Boot arka ucu ve React.js ön ucu ile JWT (JSON Web Token) tabanlı kimlik doğrulamayı Redux kullanmadan gösteren tam yığın bir uygulama.
- Teknolojiler: Spring Boot, React.js, JWT, REST API.
- Veritabanı: PostgreSQL (varsayılan).
- Açıklama: 20. projeye benzer, ancak React.js ön ucunda merkezi durum yönetimi için Redux'u entegre eden, JWT kimlik doğrulaması ve Spring Boot arka ucu ile tam yığın bir uygulama.
- Teknolojiler: Spring Boot, React.js, Redux, JWT, REST API.
- Veritabanı: PostgreSQL (varsayılan).
- Açıklama: JWT kimlik doğrulamasını rol tabanlı erişim kontrolünü uygulamak için genişletir. Kullanıcı rolleriyle JWT'leri nasıl yayınlayacağınızı ve doğrulayacağınızı ve bu rollere göre uç noktaları nasıl güvence altına alacağınızı gösterir.
- Teknolojiler: Spring Boot, JWT, Rol Tabanlı Güvenlik, REST API.
- Veritabanı: PostgreSQL (varsayılan).
- Açıklama: JPA ile PostgreSQL'de temel model kalıtım konseptini, özellikle birden çok varlıkta ortak alanları yönetmek için
@Inheritance(strategy = InheritanceType.TABLE_PER_CLASS)kullanımını gösterir. - Teknolojiler: Spring Boot, JPA, PostgreSQL, Kalıtım.
- Veritabanı: PostgreSQL.
- Referans: Kalıtım stratejisi örneği için
Transaction.java'ya bakın.
- Açıklama: JUnit ve Mockito kullanarak hizmetler, depolar ve denetleyiciler gibi çeşitli bileşenleri kapsayan Spring Boot uygulamaları için birim testleri yazma örneklerini sunar.
- Teknolojiler: Spring Boot, JUnit, Mockito.
- Veritabanı: PostgreSQL (varsayılan).
- Açıklama: Güçlü tam metin arama ve analitik yetenekler için Elastic Search'ün bir Spring Boot uygulamasıyla entegrasyonunu gösterir.
- Teknolojiler: Spring Boot, Elastic Search.
- Veritabanı: PostgreSQL (varsayılan, birincil veriler için).
- Açıklama: Gerçek zamanlı veri akışı için Spring Boot'ta Kafka üreticileri ve tüketicilerinin uygulanmasını, ayrıca otomatik işlemler için zamanlanmış görevleri sergiler.
- Teknolojiler: Spring Boot, Apache Kafka, Zamanlanmış Görevler.
- Veritabanı: PostgreSQL (varsayılan).
- Açıklama: Veritabanı tetikleyicilerini nasıl oluşturacağınızı ve kullanacağınızı ve bu tetikleyici olaylarını bir Java Spring Boot uygulamasından nasıl dinleyeceğinizi göstererek gelişmiş PostgreSQL özelliklerini keşfeder.
- Teknolojiler: Spring Boot, PostgreSQL, Veritabanı Tetikleyicileri, Java Dinleyicileri.
- Veritabanı: PostgreSQL.
- Açıklama: Spring Boot arka ucu ve React.js ön ucu ile WebSockets kullanarak gerçek zamanlı iletişim örneği. Sohbet uygulamaları veya canlı veri güncellemeleri için idealdir.
- Teknolojiler: Spring Boot, React.js, WebSockets.
- Veritabanı: PostgreSQL (varsayılan).
- Açıklama: Bir Spring Boot uygulamasında farklı günlük seviyelerini ve çıktı hedeflerini göstererek günlükleme çerçevelerini (örneğin, Logback, Log4j2) yapılandırmaya ve kullanmaya odaklanır.
- Teknolojiler: Spring Boot, Günlükleme (Logback/Log4j2).
- Veritabanı: PostgreSQL (varsayılan).
- Açıklama: Bir Spring Boot uygulamasında kodun yeniden kullanılabilirliğini ve sürdürülebilirliğini teşvik etmek için istekler, varlıklar ve yanıtlar için temel sınıflar kullanarak ortak mimari desenleri uygular.
- Teknolojiler: Spring Boot, Tasarım Desenleri.
- Veritabanı: PostgreSQL (varsayılan).
- Açıklama: WebFlux kullanan reaktif bir Spring Boot uygulaması, kimlik doğrulama/yetkilendirme için Spring Security'yi, veri depolama için MongoDB'yi içerir ve API koruması için hız sınırlaması uygular, Her request ve response (body, headers ve tüm parametreleriyle beraber) mongodb ye loglanır.
- Teknolojiler: Spring Boot WebFlux, Spring Security, MongoDB, Hız Sınırlama.
- Veritabanı: MongoDB.
- Açıklama: Spring Boot WebFlux ile oluşturulmuş kapsamlı bir reaktif uygulama, Spring Security, sağlam günlükleme, API hız sınırlaması ve MongoDB kalıcılığı özelliklerine sahiptir.
- Teknolojiler: Spring Boot WebFlux, Spring Security, Günlükleme, Hız Sınırlama, MongoDB.
- Veritabanı: MongoDB.
