Title
GitHub - actframework/actframework: An easy to use Java MVC server stack
Go Home
Category
Description
An easy to use Java MVC server stack. Contribute to actframework/actframework development by creating an account on GitHub.
Address
Phone Number
+1 609-831-2326 (US) | Message me
Site Icon
GitHub - actframework/actframework: An easy to use Java MVC server stack
Tags
Page Views
0
Share
Update Time
2022-09-25 01:27:11

"I love GitHub - actframework/actframework: An easy to use Java MVC server stack"

www.actframework.org VS www.gqak.com

2022-09-25 01:27:11

Skip to content Toggle navigation Signup Product Actions Automate any workflow Packages Host and manage packages Security Find and fix vulnerabilities Codespaces Instant dev environments Copilot Write better code with AI Code review Manage code changes Issues Plan and track work Discussions Collaborate outside of code Explore All features Documentation GitHub Skills Changelog Solutions By Plan Enterprise Teams Compare all By Solution CI/CD & Automation DevOps DevSecOps Case Studies Customer Stories Resources Open Source GitHub Sponsors Fund open source developers The ReadME Project GitHub community articles Repositories Topics Trending Collections Pricing Sign in Sign up {{ message }} actframework / actframework Public Notifications Fork 124 Star 723 An easy to use Java MVC server stack actframework.org License View license 723 stars 124 forks Star Notifications Code Issues 208 Pull requests 9 Discussions Actions Projects 0 Wiki Security Insights More Code Issues Pull requests Discussions Actions Projects Wiki Security Insights actframework/actframework This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository. master Switch branches/tags Branches Tags Could not load branches Nothing to show {{ refName }} default View all branches Could not load tags Nothing to show {{ refName }} default View all tags 32 branches 119 tags Code Clone HTTPS GitHub CLI Use Git or checkout with SVN using the web URL. Work fast with our official CLI. Learn more. Open with GitHub Desktop Download ZIP Launching GitHub Desktop If nothing happens, download GitHub Desktop and try again. Launching GitHub Desktop If nothing happens, download GitHub Desktop and try again. Launching Xcode If nothing happens, download Xcode and try again. Launching Visual Studio Code Your codespace will open once ready. There was a problem preparing your codespace, please try again. Latest commit Git stats 2,495 commits Files Permalink Failed to load latest commit information. Type Name Latest commit message Commit time doc legacy-testapp src testapps .gitignore .travis.yml ARCHETYPES.md CHANGELOG.md LICENSE NEWS.md README.md VERSION_MATRIX.md assembly-dist.xml checkstyle.xml pom.xml View code ACT Framework Install Features Sample code A HelloWorld app A full RESTful service Background README.md ACT FrameworkInstallAdd act-starter-parent into into your pom.xml file org.actframework act-starter-parent 1.9.1.0 Or use maven archetype to start a new project:mvn archetype:generate -B \ -DgroupId=com.mycom.helloworld \ -DartifactId=helloworld \ -DarchetypeGroupId=org.actframework \ -DarchetypeArtifactId=archetype-quickstart \ -DarchetypeVersion=1.9.1.0tips don't forget replace the groupId, artifactId and appName in the above script, or you can use interactive mode to generate your project:mvn archetype:generate -DarchetypeGroupId=org.actframework -DarchetypeArtifactId=archetype-quickstart -DarchetypeVersion=1.9.1.0Note There are more ActFramework application archetypes for use. Please get them here.FeaturesA full stack MVC frameworkActframework is NOT a servlet framework. Act app does not run in a servlet container. Instead it run as an independent Java application and it starts in secondsUnbeatable development experience w/ great performanceNever restart your app when you are developing. Act's dev mode provides hot reloading feature makes it the dream of every Java web app developer. Check out this 3 mins video and feel it!According to TechEmpower Framework Benchmark Act beats most full stack Java web framework on the market. In some cases Act can be over 10 times faster than SpringbootFully JSR330 Dependency Injection supportActFramework's DI support is built on top of Genie, a lightweight yet fast JSR330 implementation.Benefit from Act's powerful class scan feature, it does not require the user to create injector from modules (as the usually way you use Guice). Declare your module and your binding is automatically registeredSuperb SPA/Mobile app supportAwesome JSON/RESTful supportBuilt-in CORS supportSession/Header mapping so you are not limited to cookieBuilt-in JWT supportUncompromising SecuritySession cookie is secure and http only, payload is signed and encrypted (optionally)Enable CSRF prevention with just one configuration itemXSS prevention: the default Rythm engine escape variable output by defaultImplementing your authentication/authorisation/accounting framework using AAA pluginAnnotation aware but not annotation stackAnnotation is one of the tool ActFramework used to increase expressiveness. However we do not appreciate crazy annotation stacked code. Instead we make the code to express the intention in a natural way and save the use of annotation whenever possible.For example, for the following SpringMVC code:@RequestMapping(value="/user/{userId}/invoices", method = RequestMethod.GET)public List listUsersInvoices( @PathVariable("userId") int user, @RequestParam(value = "date", required = false) Date dateOrNull) { ...}The corresponding ActFramework app code is:@GetAction("/user/{user}/invoices")public List listUsersInvoices(int user, Date date) { ...}Multi-environment configurationActFramework supports the concept of profile which allows you to organize your configurations in different environment (defined by profile) easily. Take a look at the following configurations from one of our real project:resources ├── conf │ ├── common │ │ ├── app.properties │ │ ├── db.properties │ │ ├── mail.properties │ │ ├── payment.properties │ │ └── social.properties │ ├── local-no-ui │ │ ├── app.properties │ │ ├── db.properties │ │ └── port.properties │ ├── local-sit │ │ └── app.properties │ ├── local-ui │ │ ├── app.properties │ │ └── db.properties │ ├── sit │ │ ├── app.properties │ │ └── db.properties │ └── uat ...Suppose on your UAT server, you start the application with JVM option -Dprofile=uat, ActFramework will load the configuration in the following sequence:Read all .properties files in the /resources/conf/common dirRead all .properties files in the /resources/conf/uat dirThis way ActFramework use the configuration items defined in uat profile to overwrite the same items defined in common profile. The common items that are not overwritten still effective.Simple yet powerful database supportMultiple database support built inPowerful view architecture with multiple render engine supportAn unbelievable automate testing framework that never presented in any other MVC frameworksCommonly used toolsSending emailSchedule jobsEvent handling and dispatchingSample codeA HelloWorld apppackage demo.helloworld;import act.Act;import act.Version;import org.osgl.mvc.annotation.GetAction;public class HelloWorldApp { @GetAction public String sayHelloTo(@DefaultValue("World") String who) { return "Hello " + who + "!"; } public static void main(String[] args) throws Exception { Act.start(); }}See this 7 mins video on how to create HelloWorld in Eclipse from scratch. or for users without youtube accessA full RESTful servicepackage demo.rest;import act.controller.Controller;import act.db.morphia.MorphiaAdaptiveRecord;import act.db.morphia.MorphiaDao;import org.mongodb.morphia.annotations.Entity;import org.osgl.mvc.annotation.*;import java.util.Map;import static act.controller.Controller.Util.notFoundIfNull;@Entity("user")public class User extends MorphiaAdaptiveRecord { @UrlContext("user") public static class Service extends MorphiaDao { @PostAction public User create(User user) { return save(user); } @GetAction public Iterable list() { return findAll(); } @GetAction("{id}") public User show(@DbBind("id") User user) { return user; } @PutAction("{id}") public User update(@DbBind("id") @NotNull User user, Map data) { user.mergeValues(data); return save(user); } @DeleteAction("{id}") public void delete(String id) { deleteById(id); } } public static void main(String[] args) throws Exception { Act.start(); }}See this 1 hour video on RESTful support or for user without youtube accessSee this 7 mins video to understand more about AdaptiveRecord or for user without youtube accessBackgroundI love PlayFramework v1.x because it is simple, clear and expressive. It brought us a completely different experience in web development with Java. However I don't totally agree with where Play 2.X is heading for, and it looks like I am not the only person with the concern as per this open letter to Play Framework Developers.I have thought of rolling out something that could follow the road paved by Play 1.x, something that is simple, clear, expressive and Java (specifically) developer friendly. About one and half year after that I decide I could start the project seriously, and now another one and half year passed by, I've got this ACT framework in a relatively good shape.Happy coding! About An easy to use Java MVC server stack actframework.org Topics java mvc mongodb restful web-framework mvc-framework webframework hot-reload ebean morphia java-web actframework restful-framework mvc-frameworks Resources Readme License View license Stars 723 starsWatchers 67 watchingForks 124 forks Releases 119 tags Packages 0 No packages published Used by 109 + 101 Contributors 7 Languages Java 68.8% CSS 12.8% JavaScript 10.3% HTML 8.0% Other 0.1% Footer © 2022 GitHub, Inc. Footer navigation Terms Privacy Security Status Docs Contact GitHub Pricing API Training Blog About You can’t perform that action at this time. You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session.