You could provide this directly via gravity manipulation technology. Which when unpowered essentially turns off gravity. If you take this approach the ship's engine themselves could be grav drives, manipulating gravity directly for acceleration/deceleration.
You could also achieve gravity via rotation. In which case a series of rotating rings, or a rotating cylinder would win the day. If you go with a large cylinder/ring you will need baffles to prevent the winds within the tube from becoming too strong. Nothing ruins your day quite like having the atmosphere itself pierce the hull of your ship. This isn't as much of an issue in smaller rings, or a room layout as the furnishings/walls are natural baffles.
The longest lasting power-source known to man is a star. You could approach this in several ways.
Advanced fusion reactor cores fueled by a steady supply of deuterium/tritium. If they are really advanced this might even be miniaturised for use on smaller vehicles/ships.
An actual star, if you think about it our planet is a generation ship (sans engines) powered by a star. Of course our star is a little big for use on a ship designed for 150 people. Looking around the neighbourhood GRW +70 8247 has a rough radius of 3300km. It has a magnetic field, so with suitable magnetic/gravitic technologies (handwavium) could be harnessed and used directly.
Alternately something more out there: matter/Antimatter annihilation plants that use copious amounts of exotic mater. The exotic matter serves to catalyse lots of antimatter which is then annihilated with a steady stream of matter to produce lots of energy. Fusion converts a small fraction of the energy in mater to radiation (light/heat) that can be harnessed. Matter annihilation releases 100% of the energy, the only current stick point is that making antimatter is more energy intensive than its annihilation will produce. Hence exotic matter (and handwavium) to the rescue.
Food and Space
Hydroponics that fill a small 3*4*3 metre room are enough to grow the full caloric, vitamin, and mineral of a adult human sustainably. If plants are to accomplish the additional tasks of atmosphere scrubbing, water purification, and animal food production then the space requirements grow considerably. There are several research self-contained habitats capable of supporting 4+ humans. Although our current experiments have proven this difficult not due to the plants, but limitations in knowledge of our own construction technologies and social structures.
A human needs (as an approximate minimum) 26 cubic-metres of living space. A simple rotating ring 1 km across and say 10 metres wide and 4 metres high (120 000 cubic metres) is large enough for some 4600 humans to live in (albeit cramped, cranky, and not counting space for ship systems/work areas/food production/communal areas/corridors/etc...).
Most of the materials within the ship would need to be recycled. Some of these could be recycled more or less directly such as organic material becoming mulch, and metal objects being smeltered. Unfortunately a lot of the material will need a more advanced recycling, perhaps requiring atomisation and advanced nano-3d printing techniques. This would be energy intensive, requiring a big power source/frequent refueling.
Resource acquisition would perhaps be best done by autonomous, self-replicating, machines. They would be sent out in advance of the ship to nearby resources where they would replicate using the local materials, extract a laundry list of elements that are in demand, and launch those resources back to the generation ship.
If fleshy things existed there, some may be acquired for the curiosity of the generation ship. If resource acquisition was endangered the replicated machines would follow a sterilisation protocol. Some strategies: directed high energy gamma rays, deorbiting a nearby planet, stellar mass conversion (imploding the star/gas giant/planet to create a suitable replacement power source for the generation ship).