generator-jhipster
JHipster is a development platform to quickly generate, develop, & deploy modern web applications & microservice architectures.
Top Related Projects
Spring Boot
A progressive Node.js framework for building efficient, scalable, and enterprise-grade server-side applications with TypeScript/JavaScript 🚀
Ruby on Rails
Laravel is a web application framework with expressive, elegant syntax. We’ve already laid the foundation for your next big idea — freeing you to create without sweating the small things.
Fast, unopinionated, minimalist web framework for node.
🚀 Strapi is the leading open-source headless CMS. It’s 100% JavaScript/TypeScript, fully customizable and developer-first.
Quick Overview
JHipster is an open-source development platform for generating, developing, and deploying modern web applications and microservices. It combines popular frameworks and tools like Spring Boot, Angular, React, and Vue.js to create a full-stack development environment with best practices baked in.
Pros
- Rapid application development with code generation for both frontend and backend
- Supports multiple frontend frameworks (Angular, React, Vue.js) and database options
- Built-in security features and best practices
- Extensive documentation and active community support
Cons
- Steep learning curve for developers new to the included technologies
- Generated code can be complex and may require customization
- Opinionated architecture might not fit all project requirements
- Regular updates can sometimes introduce breaking changes
Code Examples
- Generating a new JHipster application:
jhipster
This command starts the interactive generator to create a new JHipster project.
- Adding a new entity to the application:
jhipster entity Book
This generates a new entity named "Book" with CRUD operations and corresponding frontend components.
- Running the application in development mode:
./mvnw
This command starts the backend Spring Boot application.
npm start
This command starts the frontend development server.
Getting Started
- Install JHipster:
npm install -g generator-jhipster
- Create a new directory and generate a JHipster application:
mkdir myapp && cd myapp
jhipster
-
Follow the prompts to configure your application.
-
Run the application:
./mvnw
npm start
- Access your application at
http://localhost:8080
in your web browser.
Competitor Comparisons
Spring Boot
Pros of Spring Boot
- More lightweight and flexible, allowing developers to choose components
- Extensive documentation and large community support
- Faster startup time and lower memory footprint
Cons of Spring Boot
- Requires more manual configuration and boilerplate code
- Less opinionated, which can lead to inconsistencies across projects
- Steeper learning curve for beginners
Code Comparison
Spring Boot:
@SpringBootApplication
public class Application {
public static void main(String[] args) {
SpringApplication.run(Application.class, args);
}
}
JHipster:
@SpringBootApplication
@EnableConfigurationProperties({LiquibaseProperties.class, ApplicationProperties.class})
public class MyApp {
public static void main(String[] args) {
SpringApplication app = new SpringApplication(MyApp.class);
DefaultProfileUtil.addDefaultProfile(app);
Environment env = app.run(args).getEnvironment();
logApplicationStartup(env);
}
}
Spring Boot provides a simpler entry point, while JHipster includes additional configuration and utilities out of the box. JHipster's generated code is more opinionated and comes with pre-configured features, whereas Spring Boot allows for more customization but requires manual setup of additional components.
A progressive Node.js framework for building efficient, scalable, and enterprise-grade server-side applications with TypeScript/JavaScript 🚀
Pros of Nest
- Highly modular and flexible architecture, allowing for easy customization and scalability
- Strong TypeScript support with decorators for enhanced type safety and developer experience
- Built-in dependency injection system for better code organization and testability
Cons of Nest
- Steeper learning curve, especially for developers new to TypeScript or decorators
- Less opinionated than JHipster, requiring more manual configuration for certain features
- Smaller ecosystem compared to JHipster, with fewer out-of-the-box integrations
Code Comparison
Nest controller example:
@Controller('cats')
export class CatsController {
@Get()
findAll(): string {
return 'This action returns all cats';
}
}
JHipster entity example:
@Entity()
@Table(name = "cat")
public class Cat implements Serializable {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
@Column(name = "name")
private String name;
}
Both frameworks offer powerful features for building web applications, but they cater to different needs. Nest focuses on providing a flexible, modular architecture with strong TypeScript support, while JHipster offers a more opinionated, full-stack solution with extensive code generation capabilities. The choice between them depends on project requirements and developer preferences.
Ruby on Rails
Pros of Rails
- Mature ecosystem with extensive libraries (gems) and community support
- Convention over configuration approach speeds up development
- Built-in testing framework and database migrations
Cons of Rails
- Less flexibility in technology stack choices
- Steeper learning curve for developers new to Ruby
- Performance can be slower compared to some modern frameworks
Code Comparison
Rails (config/routes.rb):
Rails.application.routes.draw do
resources :users
root 'home#index'
end
JHipster (src/main/webapp/app/app.route.ts):
const routes: Routes = [
{
path: '',
component: NavbarComponent,
outlet: 'navbar'
},
{
path: 'home',
component: HomeComponent
}
];
Rails focuses on Ruby-based configuration with a more concise syntax, while JHipster uses TypeScript and Angular for routing, offering more explicit definitions. Rails emphasizes convention, whereas JHipster provides more granular control over the application structure.
Both frameworks aim to streamline development, but Rails leans towards simplicity and rapid prototyping, while JHipster offers a more comprehensive, enterprise-ready solution with a wider range of technology choices.
Laravel is a web application framework with expressive, elegant syntax. We’ve already laid the foundation for your next big idea — freeing you to create without sweating the small things.
Pros of Laravel
- Simpler learning curve and easier to get started for PHP developers
- Extensive documentation and large community support
- Built-in features like authentication, routing, and ORM out of the box
Cons of Laravel
- Limited to PHP ecosystem, less versatile for full-stack development
- Lacks built-in support for modern front-end frameworks
- May require additional setup for complex, enterprise-level applications
Code Comparison
Laravel (routes/web.php):
Route::get('/', function () {
return view('welcome');
});
JHipster (generated Angular component):
@Component({
selector: 'jhi-main',
templateUrl: './main.component.html'
})
export class MainComponent implements OnInit {
constructor() {}
ngOnInit() {}
}
Laravel focuses on simple, expressive PHP syntax for backend development, while JHipster generates a full-stack application with separate frontend and backend code. JHipster's generated code is more complex but provides a complete structure for large-scale applications.
Laravel is ideal for PHP developers looking for a quick start and robust backend framework. JHipster suits developers needing a comprehensive full-stack solution with modern technologies and scalability in mind.
Fast, unopinionated, minimalist web framework for node.
Pros of Express
- Lightweight and minimalist framework, offering flexibility and customization
- Extensive ecosystem with a wide range of middleware and plugins
- Simple and intuitive API, making it easy to learn and use
Cons of Express
- Requires more manual setup and configuration for complex applications
- Less opinionated, which can lead to inconsistent project structures
- Lacks built-in features for enterprise-level applications
Code Comparison
Express:
const express = require('express');
const app = express();
app.get('/', (req, res) => {
res.send('Hello World!');
});
JHipster:
@RestController
@RequestMapping("/api")
public class HelloController {
@GetMapping("/hello")
public String hello() {
return "Hello World!";
}
}
Express provides a more concise and straightforward approach to creating routes, while JHipster uses a more structured, Java-based approach with annotations.
Express is ideal for developers who want full control over their application structure and prefer a minimalist approach. JHipster, on the other hand, is better suited for enterprise-level applications that require a comprehensive, opinionated framework with built-in features and best practices.
🚀 Strapi is the leading open-source headless CMS. It’s 100% JavaScript/TypeScript, fully customizable and developer-first.
Pros of Strapi
- User-friendly admin panel for content management
- Flexible and customizable content structure
- Rapid API development with automatic REST and GraphQL endpoints
Cons of Strapi
- Less suitable for complex, enterprise-level applications
- Limited built-in authentication and authorization options
- Steeper learning curve for developers new to headless CMS concepts
Code Comparison
Strapi (Content Type definition):
module.exports = {
attributes: {
title: {
type: 'string',
required: true,
},
content: {
type: 'richtext',
},
},
};
JHipster (Entity definition):
@Entity
public class Article {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
@NotNull
private String title;
@Lob
private String content;
}
Strapi focuses on content management with a flexible schema, while JHipster generates a full-stack application with a more rigid, Java-based entity structure. Strapi's approach is more suitable for content-driven applications, whereas JHipster is better for complex business logic and enterprise applications.
Convert designs to code with AI
Introducing Visual Copilot: A new AI model to turn Figma designs to high quality code using your components.
Try Visual CopilotREADME
Greetings, Java Hipster!
Full documentation and information is available on our website at https://www.jhipster.tech/
Please read our guidelines before submitting an issue. If your issue is a bug, please use the bug template pre-populated here. For feature requests and queries you can use this template. If you have found a potential security issue, please read our security policy and contact us privately first: https://github.com/jhipster/generator-jhipster/security/policy
Contributing
We are honored by any contributions you may have small or large. Please refer to our contribution guidelines and instructions document for any information about contributing to the project.
Supported Java and Node versions
The following Java and Node combinations are tested and verified by GitHub Actions:
Java | Node | Status |
---|---|---|
17/21/22 | 18/20 | â |
Sponsors
Support this project by becoming a sponsor! Become a sponsor or learn more about sponsoring the project.
Thank you to our sponsors!
Bronze sponsors
Backers
Thank you to all our backers!
Daily Builds
Additional builds at hipster-labs/jhipster-daily-builds
Pipeline Status |
---|
Analysis of the sample JHipster project
Top Related Projects
Spring Boot
A progressive Node.js framework for building efficient, scalable, and enterprise-grade server-side applications with TypeScript/JavaScript 🚀
Ruby on Rails
Laravel is a web application framework with expressive, elegant syntax. We’ve already laid the foundation for your next big idea — freeing you to create without sweating the small things.
Fast, unopinionated, minimalist web framework for node.
🚀 Strapi is the leading open-source headless CMS. It’s 100% JavaScript/TypeScript, fully customizable and developer-first.
Convert designs to code with AI
Introducing Visual Copilot: A new AI model to turn Figma designs to high quality code using your components.
Try Visual Copilot