Hibernate accepts configuration through all three methods: passing Properties directly to Configuration object, placing hibernate.properties in classpath root, or setting System properties via -D flags. This flexibility allows different deployment and configuration strategies.